Перейти к содержанию
    

bbill

Участник
  • Постов

    76
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о bbill

  • Звание
    Частый гость
    Частый гость
  • День рождения 18.02.1960

Контакты

  • Сайт
    Array
  • ICQ
    Array
  1. Не стартует attiny2313A

    Сталкивался с проблемой: при замене tn2313 на tn2313A перестали работать изделия. Генератор используется внутренний. Не могу, правда гарантировать, что не накосячил с переносом программы на 2313А. Времени разбираться пока не было, поставили без А.
  2. IAR 6.10 Запись в EEPROM

    Примените вот такое "заклинание": -we133=i -Ointel-extended,(CODE)=$PROJ_DIR$\Имя.hex -Ointel-extended,(XDATA)=$PROJ_DIR$\ee_Имя.hex Использую для Си(без плюсов)
  3. Чтобы не создавать новую тему. Кто-нибудь сравнивал новый IAR 6.20.1 for AVR с версиями 5.51 и 6.11. Интересует разница в размере выходного кода при одинаковых условиях оптимизации.
  4. AvrStudio 5.1

    А что такого хорошего в 6-ой?
  5. AVR IAR 5.4 + SlickEdit 16 баг

    Со Slick-ом не работал, ничего не могу сказать. А вот Notepad++, как по мне - удобно.
  6. ldi ZH,high(Label1) ldi ZL,low(Label1) icall
  7. Получается, что на выходе(Output) отрицательное напряжение относительно земли (согласно полярности включению конденсатора C3). На обкладках C3 должно быть не менее 1 вольта.
  8. Во всех охранных приборах, разных производителей, шлейфовые цепи напрямую на вход процессора не подключаются. Только через цепи согласования. Как Вы их выполните, это отдельный разговор. Не забудьте про необходимость оконечного элемента шлейфовой цепи. Чаще всего для этой цели используется резистор. Посмотрите схемы приборов ОПС разных производителей, наших и импортных.
  9. Помогите разобраться с ошибкой. При чтении данных с 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. Оптимизация максимальная, по скорости.
  10. У меня в опциях линкера стоит -we133=i -Ointel-extended,(CODE)=$PROJ_DIR$\--Имя проекта--.hex -Ointel-extended,(XDATA)=$PROJ_DIR$\ee_--Имя проекта--.hex на выходе два HEX файла. Где сие вычитал, к сожалению, не помню.
  11. Спасибо 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 не влияет.
  12. Подскажите, как на Си считать из EEPROMa с байтовой организацией, переменную типа long. Любая 8-ми битная АВРка. Компилятор ИАР 5.30.
  13. "Имена в различных перечислениях должны быть различными. Значения констант в одном перечислении не обязаны быть различными." K&R.
×
×
  • Создать...