XsanyaX 0 7 июля, 2006 Опубликовано 7 июля, 2006 · Жалоба Извиняюсь за оффтопик,но зачем такие сложности.... В 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 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Crystaly 0 7 июля, 2006 Опубликовано 7 июля, 2006 (изменено) · Жалоба Дело не просто в опросе готовности. Дело в том, что не надо ждать вхолостую готовность. Вы в программе фактически просто отправляете данные в EEPROM без ожидания готовности со скоростью программы хоть тридцать байт друг за дружкой без всяких ожиданий. А они уже "сами без вашего участия" своим чередом со скоростью EEPROM улетят. Если не устраивает куча (нельзя вдруг нарушать последовательность записи) - можно добавить еще один указатель и сделать полноценный буфер-очередь. Изменено 7 июля, 2006 пользователем Crystaly Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться