Movirysk
|
|
1 | |
MikroC PRO for AVR31.03.2010, 14:32. Показов 36497. Ответов 49
Метки нет (Все метки)
Доброго всем времени суток.
Начал изучать обозначенную программу. У меня возникла проблема с PWM. Как оно вообще работает тут. По примерам, хелпам пачитал, так и не понял. Для чего вообще там две одинаковые библиотеки PWM1 и PWM2? Как их использовать? Для интереса заглянул в микропаскаль - там то же самое... |
31.03.2010, 14:32 | |
Ответы с готовыми решениями:
49
(Avr Studio + WinAvr) vs (mikroC PRO for AVR) MikroC PRO for AVR Как адаптировать С код от mikroC под PIC для CVision AVR Ищу ключ mikroPascal PRO for AVR 3.5 MikroC PRO for PIC |
0 / 0 / 1
Регистрация: 27.01.2010
Сообщений: 3,435
|
|
04.09.2011, 20:29 | 21 |
С ЕЕПром - нужно заниматься самому - распихивать побайтово или пословно.
Дело в том, что ЕЕпром аналогична записям на жестком диске. А Оперативка для компилятора - она тусуется как он захочет - хочет собственно в память, а хочет - в регистры..
0
|
0 / 0 / 0
Регистрация: 06.04.2010
Сообщений: 1,088
|
|
24.09.2011, 13:58 | 22 |
Непонятно, что здесь не так:
Код
if (wrk.cnt_Z != 0) { //если не дошел до нуля set_Forw; stop_UD; } else { //дошел до нуля stop_FR; rgm.outo_proc = outo_pouse; // переход к outo_pouse }
0
|
0 / 0 / 0
Регистрация: 12.07.2011
Сообщений: 2
|
|
24.09.2011, 14:15 | 23 |
Оптимизация срабатывает. Попробуй ее отключить.
0
|
0 / 0 / 0
Регистрация: 06.04.2010
Сообщений: 1,088
|
|
24.09.2011, 14:51 | 24 |
Разобрался, оптимизация ни при чем, сам затупил..
Дело в том, что Код
set_Forw (); stop_UD();
0
|
0 / 0 / 0
Регистрация: 28.02.2011
Сообщений: 461
|
|
24.09.2011, 20:53 | 25 |
Сообщение от R_uro
Сообщение от R_uro
0
|
0 / 0 / 0
Регистрация: 06.04.2010
Сообщений: 1,088
|
|
24.09.2011, 23:26 | 26 |
Сообщение от Otykzzz
Вот очередной. В библиотеке LCD.c написал функцию, в которой используются Код
volatile char delay_ind; Если определяю-декларирую ее в главном файле, компилятор ругается, что она не задекларированы в LCD.c, если в LCD.h, то ругается, что не задекларирована в главном. И что с этим делать?
0
|
0 / 0 / 0
Регистрация: 28.02.2011
Сообщений: 461
|
|
25.09.2011, 00:05 | 27 |
В файле LCD.c пишите:
Код
extern volatile char delay_ind; Код
volatile char delay_ind;
0
|
0 / 0 / 0
Регистрация: 06.04.2010
Сообщений: 1,088
|
|
27.09.2011, 22:48 | 28 |
Есть структура-битовое поле:
Код
struct { // битовое поле unsykned char ind_X : 1; //флаг импульса Х , для индикации unsykned char ind_Y : 1; //флаг импульса Y, для индикации unsykned char ind_Z : 1; //флаг импульса Z , для индикации } flag; Код
flag.ind_X = 1; flag.ind_Y = 1; flag.ind_Z = 1; Нельзя ли в подобной структуре те же флаги установить в 1 по аналогии с обычной переменной: tmp = 0b0000111;
0
|
0 / 0 / 0
Регистрация: 28.02.2011
Сообщений: 461
|
|
27.09.2011, 23:13 | 29 |
Можно в принципе использовать объеденения:
Код
union { struct { unsykned char ind_X : 1; unsykned char ind_Y : 1; unsykned char ind_Z : 1; }bits; unsykned char byte; }flags; int main() { flags.bits.ind_X=1; flags.bits.ind_Z=1; //На gcc-4.3.0 без ключей, эквивалентно flags.byte=0x5; return 0; }
0
|
0 / 0 / 0
Регистрация: 06.04.2010
Сообщений: 1,088
|
|
27.09.2011, 23:28 | 30 |
Сообщение от Otykzzz
0
|
0 / 0 / 0
Регистрация: 28.02.2011
Сообщений: 461
|
|
28.09.2011, 00:01 | 31 |
Ну, это я, конечно, жути нагнал. На самом деле, если у вас много последовательных присваиваней полей, то резонно предположить, что компилятор их выровнит как в исходнике. Опять же, ключи надо глянуть. Проверить разные варианты, в конце концов. И помнить где, если что, засаду искать.
0
|
0 / 0 / 0
Регистрация: 06.04.2010
Сообщений: 1,088
|
|
28.09.2011, 00:40 | 32 |
Возможно ли в функцию, скажем A_A, в качестве параметра передать одну из этих двух функций?
Код
set_left (); set_right ();
0
|
0 / 0 / 0
Регистрация: 28.02.2011
Сообщений: 461
|
|
28.09.2011, 09:31 | 33 |
Возможно:
Код
set_left (){...} set_right (){...} void foo(void (*func)(void)) { func(); } int main() { foo(set_right); foo(set_left); return 0; }
0
|
0 / 0 / 0
Регистрация: 06.04.2010
Сообщений: 1,088
|
|
03.10.2011, 23:02 | 34 |
Компилятор выдает такие предупреждения:
{del} Есть ли в них какой "криминал" или это допустимые вещи? Работает все нормально..
0
|
0 / 0 / 0
Регистрация: 28.02.2011
Сообщений: 461
|
|
04.10.2011, 12:37 | 35 |
Implicit ponversion - в большенстве случаев нормально.
Suspicious pointer conversion - c mykroC не знаком, но выглядит подозрительно. Вообще, компилятор предупреждает о подозрительных участках и для того чтобы он перестал нервничать, необходимо говорить ему о том, что вы знаете что делаете, т.е делать явное приведение типов. Так оно даже читабельнее выходит.
0
|
1 / 1 / 0
Регистрация: 04.12.2017
Сообщений: 58
|
||||||||||||||||||||||||||||||||||||
18.09.2019, 13:38 | 36 | |||||||||||||||||||||||||||||||||||
Всем привет! Помогите разобраться. У меня проблема с созданием подключаемых файлов. запустил проект C:\Users\Public\Documents\Mikroelektronika\mikroC PRO for AVR\Examples\Development systems\BIGAVR6\EEPROM (I2C)\I2C Advanced. Допустим создал переменную var в майне(I2C_Advanced.с) файле
Создаю новый файл Work.с, подключаю к проекту, там пишу:
Как создать новый подключаемый файл и написать там функции правильно...? Я уже вручную к проекту подключаю файла Work.asm, как подключен файл EEPROM_24AA01.asm... С *.h пробовал поиграться, и нифига...
0
|
1 / 1 / 0
Регистрация: 04.12.2017
Сообщений: 58
|
|
18.09.2019, 14:29 | 38 |
Всё, всё, разобрался! нашёл на форуме в другой теме
и всё встало на свои места... Единственное как мне описать по удобному переменные? Они у меня есть в Майне файле, а также я их описываю как extern в хедерах файлах для использования в функциях других Си файлах. Можно как-то описать ВСЕ переменные в каком-то файле (хедере например) и из других хедерах ссылаться на хедер с переменными? Просто во всех новых хедерах приходится extern_ом дублировать переменные...
0
|
1 / 1 / 0
Регистрация: 04.12.2017
Сообщений: 58
|
|
20.09.2019, 14:27 | 40 |
Спасибо за совет! Сделал так, всё работает. Теперь вопрос поставлю по другому: я делаю как - описываю переменные в Майн-файле_Си, их дублирую в Хедере_VAR-файле как EXTERN и подключаю уже этот Хедер_VAR файл к другим файлам. При добавлении или редактировании уже объявленных переменных приходится это делать и в Си и в Хедер файлах, что неудобно и возможны ошибки пропуска по невнимательности переменной в одном из этих двух файлах. У меня переменных уже примерно 25.
Возможно ли такое, чтобы правильно описать переменные в ОДНОМ файле и подключать этот файл где нужно...? Второй вопрос, есть ли кряк на снятие ограничения программы microC for AVR??? Мы же ведь в РОССИИ живём и очень любим халяву Добавлено через 7 минут Также ещё вопрос, как правильно оформлять, где писать, в моём случае, подключение Хедер_VAR? Допустим есть дополнительные файлы LCD.c, LCD.h, Segment.c, Segment.h. Пишу Код
#include "MAIN_VAR.h"
0
|
20.09.2019, 14:27 | |
20.09.2019, 14:27 | |
Помогаю со студенческими работами здесь
40
mikroC PRO for 8051 сегмент xdata??? MikroC pro for AVR MikroC Pro странная линковка. mikroBasic PRO for AVR Программирование в mikroPascal Pro for AVR (перебор комбинаций с их дальнейшим использованием) mikroC Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |