alcosar (29.03.2006 06:53, просмотров: 1) ответил Charlie на AT89S8253. Странности программирования и работы с EEPROM
1. Нужно поменять конденсаторы возле кварца с 30 пФ на 5 пФ. 52 -я с 5пФ тоже работает. 2. Посмотрите на сайте atmel что-то Migrating from at89s8252/at89s53 to at89s8253. Но суть такая, переед опросом бита установления готовности - окончаня записис в EEPROM нужно сначала подождать пока он утановится, т. е,
так делалось в at89s8252:
void eeprom_putc(unsigned char c, unsigned char addr)
{
unsigned char xdata *eed = addr;
ET0 = 0;
WMCON |= WEMASK;
*eed = c;
while (!(WMCON & 0x02))
;
if (*eed != c) {
lcd_puts_p(1, 1, "EEPROM ERROR");
for (;;);
}
WMCON ^= EEMEN;
ET0 = 1;
}
а в at89s8253 надо делать так:
void eeprom_putc(unsigned char c, unsigned char addr)
{
unsigned char xdata *eed = addr;
ET0 = 0;
WMCON |= WEMASK;
*eed = c;
while ((WMCON & 0x02))
;
while (!(WMCON & 0x02))
;
if (*eed != c) {
lcd_puts_p(1, 1, "EEPROM ERROR");
for (;;);
}
WMCON ^= EEMEN;
ET0 = 1;
}
Последний вариант работает и с at89s8252.