Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Библиотеки для EEPROM записи/чтения двойного слова (32 бит), значения с плавающей точкой (32 бит)
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > IAR
Ga_ry
Добрый всем день.
Подскажите библиотеки AVR для EEPROM записи/чтения двойного слова (32 бит), значения с плавающей точкой (32 бит)

ps
контроллер Atmega88
megajohn
а так не катит ?
__eeprom float var = 12.0;
__eeprom long var2 = 123456;

вариант 2:
в intrinsics.h определено __EEPUT и __EEGET для побайтовой работы
на их базе можно сделать что угодно

#define __EEPUT_N(ee_addr,src,size) for( unsigned char i = 0; i < size; i++ ) __EEPUT(ee_addr+i,((unsigned char*)src)[i] )

float var = 34.67;
__EEPUT_N( 0x34, &var, sizeof( var ) );
long var2 = 3467;
__EEPUT_N( 0x40, &var2, sizeof( var2 ) );
Ga_ry
Первый вариант еще вчера пробовал, при попытке чтения компилятор пишет:
Error[e133]: The output format intel-standard cannot handle multiple address

Второй вариант работает без ошибок, спасибо!

Соответственно для чтения так, правильно?
#define __EEGET_N(src,ee_addr,size) for( unsigned char i = 0; i < size; i++ ) __EEGET(((unsigned char*)src)[i],ee_addr+i )

А что с прерываниями?
При работе этих определений во время записи, прерывания нужно запретить?
Сергей Борщ
Поиск по форумы фразы "Error[e133]: The output format intel-standard cannot handle multiple address" дает кучу результатов
megajohn
Цитата(Ga_ry @ Oct 22 2015, 10:37) *
А что с прерываниями?
При работе этих определений во время записи, прерывания нужно запретить?


если используете вытесняющую RTOS, либо SuperLoop но запись в EEPROM хотите делать и из прерываний - то нужно запрещать. И не забыть что на 5мс ваша система будет глуха и слепа.
самое правильное, это не запрещать прерывания. И если SuperLoop то не делать запись в прерываниях. Если RTOS то запись через отдельную задачу
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.