|
|
U menia 7.85, tam tozhe bili problemy s zapis'u v EEPROM, no okazalos' trivial'neyshaia oshibka v makrose:
Original:
#define EEPROM_WRITE(addr, value) while(WR)continue;EEADR=(addr);EEDATA=value);EEPGD=0;GIE=0;WREN=1;EECON2=0x55;EECON2=0xAA;WR=1;WREN=0;
Nado:
#define EEPROM_WRITE(addr, value) {while(WR)continue;EEIF=0;EEADR=(addr);EEDATA=(value);EEPGD=0;GIE=0;WREN=1;EECON2=0x55;EECON2=0xAA;WR=1;WREN=0;}
Inache takoy cicle:
for( i = 0; i < N; i++ )
EEPROM_WRITE(address+i, value[i]);
Posle preprocessora prevraschaetsia v :
for( i = 0; i < N; i++ )
while(WR)continue;
EEADR=(addr);
EEDATA=value);
EEPGD=0;
GIE=0;
WREN=1;
EECON2=0x55;
EECON2=0xAA;
WR=1;
WREN=0;
T.e. zapisivaetsia tolko odin bait :)
Ni i plus nado konechno dobavit' Ia dumal oni podpraviat v 8.01 PL3 versii - an net :)
E-mail:
info@telesys.ru
Ответы