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

 
 
> Запись,чтение EEPROM
glebka
сообщение Jul 4 2006, 09:27
Сообщение #1


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

Группа: Свой
Сообщений: 199
Регистрация: 22-06-05
Пользователь №: 6 217



Делаю проект на MEGA 168, использюю ICC. Пишу 4 слова в EEPROM, читаю только последнее записанное.Пример взял из даташита.В чем может быть проблема.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
XsanyaX
сообщение Jul 7 2006, 10:35
Сообщение #2


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

Группа: Свой
Сообщений: 75
Регистрация: 7-04-05
Из: Украина
Пользователь №: 3 948



Извиняюсь за оффтопик,но зачем такие сложности.... В ICC есть готовые функции (вернее макросы) EEPROM_READ() и EEPROM_WRITE() объявленные в eeprom.h, они сами занимаются опросом готовности EEPROM. В хелпе по ICC всё расписано.
Вот пример из этого же хелпа:
#pragma data:eeprom
int foo = 0x1234;
char table[] = { 0, 1, 2, 3, 4, 5 };
#pragma data:data
...
int i;
EEPROM_READ((int)&foo, i); // i now has 0x1234


--------------------
Метрология - наука о достаточной точности.
Go to the top of the page
 
+Quote Post
Crystaly
сообщение Jul 7 2006, 11:45
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 20
Регистрация: 1-09-05
Из: Рыбинск
Пользователь №: 8 130



Дело не просто в опросе готовности. Дело в том, что не надо ждать вхолостую готовность. Вы в программе фактически просто отправляете данные в EEPROM без ожидания готовности со скоростью программы хоть тридцать байт друг за дружкой без всяких ожиданий. А они уже "сами без вашего участия" своим чередом со скоростью EEPROM улетят. Если не устраивает куча (нельзя вдруг нарушать последовательность записи) - можно добавить еще один указатель и сделать полноценный буфер-очередь.

Сообщение отредактировал Crystaly - Jul 7 2006, 11:47
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- glebka   Запись,чтение EEPROM   Jul 4 2006, 09:27
- - IgorKossak   После записи каждого байта неплохо бы дождаться ок...   Jul 4 2006, 09:36
- - KRS   Цитата(glebka @ Jul 4 2006, 13:27) Делаю ...   Jul 4 2006, 09:36
|- - glebka   Код такой void EEPromWrite( unsigned int Addr, un...   Jul 4 2006, 09:42
|- - KRS   При чтении не надо ждать окончания записи, тем бол...   Jul 4 2006, 09:59
- - IgorKossak   DelayMilliSec( 10 ); Совершенно лишняя процедура, ...   Jul 4 2006, 09:57
- - IgorKossak   Похоже в Этом КодEEAR=Addr;может быть ошибка. EEAR...   Jul 4 2006, 10:02
- - beer_warrior   А не может ли быть следующего: 1.Читаете по указат...   Jul 4 2006, 10:17
|- - glebka   Цитата(beer_warrior @ Jul 4 2006, 14:17) ...   Jul 4 2006, 10:33
|- - IgorKossak   Цитата(glebka @ Jul 4 2006, 13:33) ...Воп...   Jul 5 2006, 07:12
|- - KRS   Цитата(IgorKossak @ Jul 5 2006, 11:12) Ци...   Jul 5 2006, 08:40
|- - IgorKossak   Цитата(KRS @ Jul 5 2006, 11:40) Цитата(Ig...   Jul 5 2006, 09:39
- - glebka   Уррра.заработалою. Код unsigned char EEPromRead...   Jul 5 2006, 09:03
|- - IgorKossak   Совет по оптимизации: Код unsigned char EEPromRea...   Jul 5 2006, 09:21
|- - Crystaly   Цитата(glebka @ Jul 5 2006, 13:03) Уррра....   Jul 7 2006, 09:56


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

 


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


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