tiger74521 发表于 2007-8-19 08:58:39

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就没反映。有一次手动置位还是写如了,但很难碰上一

次。着请问问题在那里。

machao 发表于 2007-8-29 18:57:55

写EEPROM尽量不要使用单步执行调试,因为AVR写EEPROM有特殊时间限制,超时写不进。请参考器件手册说明。

hfut0801 发表于 2011-7-16 21:59:19

马瑞卡   我也一样
页: [1]
查看完整版本: ATMEGA88中EEPROM能读不能写是什么原因