Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Опять про EEPROM!
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
BVU
Всем привет!
Посмотрел AVR IAR C/EC++ Compiler (Reference Guide) и понял что в EEPROM-е "на прямую" могут размещаться данные типа char и int.
Мне надо хранить данные значение которых double.
Я полагаю организовав свои функции/макросы сделать так:
double разбивается на четыре int и поочередно записываются в EEPROM(считывание в обратной последовательности)...
Кто знает какой другой более оригинальный способ?
IgorKossak
В ЕЕПРОМ можно располагать данные любых типов, в том числе и double.
Правда есть одна неприятность. Я о ней уже писал, но не помню где.
Дело в глюке, содержащемся в файле avr/src/lib/eeprom.s90.
В этом файле надо справить функцию __eeput64_16:
- ?eeput16 заменить на ?eeput16_64;
- ?eeput16_inc заменить на ?eeput16_64_inc.
И далее включить этот файл в проект и компилировать/собирать всё вместе.
BVU
Благодарю IgorKossak за разьяснение, что привело меня к выполнению следующих действий:
удалил IAR Embedded Workbench 3.10A, установил IAR Embedded Workbench 4.10B(давно бы это следовало сделать!). В 4.10B посмотрел файл: eeprom.s90 - там все выглядит "прилично" от 8 до 64 bits функции. Добавил в свойства проекта - Linker - Extra Option:

-Ointel-extended,(CODE)=%PROJ_NAME%.hex
-Ointel-extended,(XDATA)=%PROJ_NAME%.eep

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