реклама на сайте
подробности

 
 
> считать long из EEPROMa
bbill
сообщение Mar 24 2010, 03:28
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 76
Регистрация: 21-10-05
Пользователь №: 9 941



Подскажите, как на Си считать из EEPROMa с байтовой организацией, переменную типа long.
Любая 8-ми битная АВРка. Компилятор ИАР 5.30.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
bbill
сообщение Mar 24 2010, 11:51
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 76
Регистрация: 21-10-05
Пользователь №: 9 941



Спасибо 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 не влияет.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 01:58
Рейтинг@Mail.ru


Страница сгенерированна за 0.01367 секунд с 7
ELECTRONIX ©2004-2016