ATMEGA88中EEPROM能读不能写是什么原因
问高手:ATMEGA88中EEPROM能读不能写是什么原因初学AVR遇到一问题,ATMEGA88中EEPROM能读不能写。我用的是AVRmkIILite仿真器,AVR Stidio 4.13
环境,8MHZ内部晶振,不分频。程序用的是A88 DATA中的范例
void eeprom_write(ulong addr,uchar data)
{
while(EECR & _BV(EEPE));
EEAR = addr;
EEDR = data;
CLOSE_G_INT;
EECR |= (1<<EEMPE);//_BV(EEMPE);
EECR |= (1<<EEPE); //_BV(EEPE);
OPEN_G_INT;
}
uchar eeprom_read(ulong addr)
{
while(EECR & _BV(EEPE));
EEAR = addr;
EECR |= _BV(EERE);
return EEDR;
}
单步执行时,EEMPE置位可以,但接置位EEPE就没反映。有一次手动置位还是写如了,但很难碰上一
次。着请问问题在那里。 写EEPROM尽量不要使用单步执行调试,因为AVR写EEPROM有特殊时间限制,超时写不进。请参考器件手册说明。 马瑞卡 我也一样
页:
[1]