[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
#if CPU_TIPE leq AT89S8252
data byte *pxdata;
/*-------------------------------------*/
void make_pxdata (word toff)
begin
pxdata = (byte *) (0x010000 or ((ad shl 1) + (toff shl 1)));
endbeg
/*-------------------------------------*/
/* читаем внутреннийй EEPROM 8252 */
void read_flash_ (word tabl_off)
begin
make_pxdata (tabl_off);
DI
WMCON or= 1 << EEMEN;
EI
DATAWH = *pxdata++;
DATAWL = *pxdata;
DI
WMCON and= ~(1 << EEMEN);
EI
endbeg
/*-------------------------------------*/
void eeprom_rdy (void)
begin
for (;;)
{
if ((WMCON and (1 << EERDY)) lne 0) return;
}
endbeg
/*-------------------------------------*/
/* пишем внутренний EEPROM 8252 */
void write_flash_ (word tabl_off)
{
make_pxdata (tabl_off);
DI
WMCON or= (1 << EEMEN) or (1 << EEMWE);
EI
eeprom_rdy ();
*pxdata++ = DATAWH;
eeprom_rdy ();
*pxdata = DATAWL;
eeprom_rdy ();
DI
WMCON and= ~((1 << EEMEN) or (1 << EEMWE));
EI
}
/*-------------------------------------*/
#endif
E-mail: info@telesys.ru