bbill
Участник-
Постов
76 -
Зарегистрирован
-
Посещение
Репутация
0 ОбычныйИнформация о bbill
-
Звание
Частый гость
- День рождения 18.02.1960
Контакты
-
Сайт
Array
-
ICQ
Array
-
Сталкивался с проблемой: при замене tn2313 на tn2313A перестали работать изделия. Генератор используется внутренний. Не могу, правда гарантировать, что не накосячил с переносом программы на 2313А. Времени разбираться пока не было, поставили без А.
-
Примените вот такое "заклинание": -we133=i -Ointel-extended,(CODE)=$PROJ_DIR$\Имя.hex -Ointel-extended,(XDATA)=$PROJ_DIR$\ee_Имя.hex Использую для Си(без плюсов)
-
Чтобы не создавать новую тему. Кто-нибудь сравнивал новый IAR 6.20.1 for AVR с версиями 5.51 и 6.11. Интересует разница в размере выходного кода при одинаковых условиях оптимизации.
-
Со Slick-ом не работал, ничего не могу сказать. А вот Notepad++, как по мне - удобно.
-
ATmega8 адресс метки
bbill ответил Shadovv13 тема в MCS51, AVR, PIC, STM8, 8bit
ldi ZH,high(Label1) ldi ZL,low(Label1) icall -
Усилители
bbill ответил aptr0n тема в Схемотехника
Получается, что на выходе(Output) отрицательное напряжение относительно земли (согласно полярности включению конденсатора C3). На обкладках C3 должно быть не менее 1 вольта. -
Встроенные защитные диоды на I/O портах ATxmega?
bbill ответил vovantr тема в Схемотехника
Во всех охранных приборах, разных производителей, шлейфовые цепи напрямую на вход процессора не подключаются. Только через цепи согласования. Как Вы их выполните, это отдельный разговор. Не забудьте про необходимость оконечного элемента шлейфовой цепи. Чаще всего для этой цели используется резистор. Посмотрите схемы приборов ОПС разных производителей, наших и импортных. -
Ошибка компиляции
bbill опубликовал тема в Программирование
Помогите разобраться с ошибкой. При чтении данных с EEPROMa в переменную, данные оказываются в RAM по другому адресу. Описание проблемы: В main.c, по флагу вызывается функция, которая читает данные из EEPROMa в глобальную переменную. if(DevFlag.ReadDataEE) { ReReadDataEE(); } Флаг вызова ф-ии устанавливается в прерывании. Структура(флаги) объявлена main.c: typedef struct { volatile u_char Regim12 :1, // ... ReadDataEE :1, //считать с EEPROMa ... }dev_fl; dev_fl DevFlag; u_int ContrValueData, ContrValueTest; В функции очищается флаг вызова функции и читаются данные. Если флаг очищается сразу после входа в функцию, то данные пишутся по другому адресу. Если если перед выходом из ф-ии, то по адресу переменной(правильно). В чем ошибка? Функция чтения данных: void ReReadDataEE(void) { //если сброс флага здесь, то ошибка в адресе записи в RAM __disable_interrupt(); DevFlag.ReadDataEE = 0; __enable_interrupt(); if(!DevFlag.Regim12) { ContrValueData = ReadIntDataEE(ADR_DATA1_EE); ContrValueTest = ReadIntDataEE(ADR_DATA2_EE); } else { ContrValueData = ReadIntDataEE(ADR_DATA12_EE); } //если сброс флага здесь, то ошибки нет /* __disable_interrupt(); DevFlag.ReadDataEE = 0; __enable_interrupt(); */ } Расположение переменных из map файла: ContrValueTest DATA 0000007E ContrValueData DATA 0000007C TimerData DATA 0000007A //------------------------------------------------------------------------------ Листинг 1, с ошибкой: Листинг 2, без ошибки: Компилятор IAR 5.30, контроллер tiny26. Оптимизация максимальная, по скорости. -
считать long из EEPROMa
bbill ответил bbill тема в Программирование
У меня в опциях линкера стоит -we133=i -Ointel-extended,(CODE)=$PROJ_DIR$\--Имя проекта--.hex -Ointel-extended,(XDATA)=$PROJ_DIR$\ee_--Имя проекта--.hex на выходе два HEX файла. Где сие вычитал, к сожалению, не помню. -
считать long из EEPROMa
bbill ответил bbill тема в Программирование
Спасибо mempfis за ответ. Моя ошибка заключалась в том, что сначала нужно было сделать приведение типа, а потом делать сдвиг было u_char adress = eeDataLong; ... data_long |= ((EEPROM_read(adress++)) <<8); data_long |= (EEPROM_read(adress++)) <<16; ... стало ... data_long |= ((EEPROM_read(adress++)) <<8); data_long |= ((long)(EEPROM_read(adress++))) <<16; ... to Dog Pawlowa: Для записи приведение типа делать не нужно, ошибок не было. u_long long_data; ... EEPROM_write(adress++, long_data >>=8); EEPROM_write(adress++, long_data >>=16); ... В опциях проекта выходной формат стоит ubrof8. установка intel-extended не влияет. -
считать long из EEPROMa
bbill опубликовал тема в Программирование
Подскажите, как на Си считать из EEPROMa с байтовой организацией, переменную типа long. Любая 8-ми битная АВРка. Компилятор ИАР 5.30. -
Подскажите по поводу enum
bbill ответил mempfis_ тема в Программирование
"Имена в различных перечислениях должны быть различными. Значения констант в одном перечислении не обязаны быть различными." K&R. -
Спасибо