[an error occurred while processing this directive] [an error occurred while processing this directive]
Траблы с записью в EEPROM T89C51RD2(+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено Vit 29 ноября 2001 г. 12:05

Работа только с одним DPTR. Данные перегоняются в IDATA, запрещаются все прерывания и пишется в EEPROM.
void set_flnew( unsigned char index, unsigned char *ukaz, unsigned char maxx)
{
int ccc;
idata char vsppom[ 64];
for( ccc = 0; ccc < maxx; ccc++)
vsppom[ ccc] = ukaz[ index + ccc];
EECON |= 2;
AUXR |= 0x20;
for( ccc = 0; ccc < maxx; ccc++)
*( FLPAM + index + ccc) = vsppom[ ccc];
EETIM = 60;
EECON = 0x52;
EECON = 0xA2;
while( EECON & 1) ;
AUXR &= ~0x20;
EECON &= ~2;
}
Когда пишется 2 блока подряд, возникает ошибка в данных, где-то в 14 байте. Тестировалось на нескольких м/с и разных платах одного типа.
Подлскажите, плз, где ручонки кривенькие.

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru