Перейти к содержанию
    

Извиняюсь за оффтопик,но зачем такие сложности.... В 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Изменено пользователем Crystaly

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...