[an error occurred while processing this directive]
|
void EEPUT(unsigned ADR,char VAL)
{while (EECR & 0x02);
EEARL = (char)(ADR); EEARH = (char)((ADR) >> 8); EEDR = (VAL);
_CLI(); EECR|=0x04; EECR|=0x02; _SEI();
EEARL=0; EEARH=0;
}
void EEGET(char *VAR, unsigned ADR)
{while (EECR & 0x02);
EEARL = (char)(ADR);
EEARH= (char)((ADR) >> 8); EECR = 0x01; *(VAR)=EEDR;
EEARL=0; EEARH=0;
}
1). критическая по времени область записи защищена, я без прерываний программ не пишу в принципе (кстати, не знаю как это сейчас реализовано у IAR).
2). после операции адрес устанавливается на "жертвенную" и неиспользуемую ячейку 0;
E-mail: info@telesys.ru