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

 
 
> Опять про EEPROM!, Размешение в EEPROM данных типа double?
BVU
сообщение Jul 29 2005, 10:35
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 301
Регистрация: 30-11-04
Из: Россия, Н.Новгород
Пользователь №: 1 264



Всем привет!
Посмотрел AVR IAR C/EC++ Compiler (Reference Guide) и понял что в EEPROM-е "на прямую" могут размещаться данные типа char и int.
Мне надо хранить данные значение которых double.
Я полагаю организовав свои функции/макросы сделать так:
double разбивается на четыре int и поочередно записываются в EEPROM(считывание в обратной последовательности)...
Кто знает какой другой более оригинальный способ?


--------------------
Не корысти ради, не в целях наживы, а во исполнение велений души!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 2)
IgorKossak
сообщение Jul 29 2005, 11:06
Сообщение #2


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



В ЕЕПРОМ можно располагать данные любых типов, в том числе и double.
Правда есть одна неприятность. Я о ней уже писал, но не помню где.
Дело в глюке, содержащемся в файле avr/src/lib/eeprom.s90.
В этом файле надо справить функцию __eeput64_16:
- ?eeput16 заменить на ?eeput16_64;
- ?eeput16_inc заменить на ?eeput16_64_inc.
И далее включить этот файл в проект и компилировать/собирать всё вместе.
Go to the top of the page
 
+Quote Post
BVU
сообщение Aug 1 2005, 08:39
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 301
Регистрация: 30-11-04
Из: Россия, Н.Новгород
Пользователь №: 1 264



Благодарю 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.


--------------------
Не корысти ради, не в целях наживы, а во исполнение велений души!
Go to the top of the page
 
+Quote Post

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

 


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


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