首页 > 技术 > E2PROM操作,解决重启问题

E2PROM操作,解决重启问题

2007年7月29日

#define EERE 0
#define EEWE 1
#define EEMWE 2

void E2PROM_Write(unsigned int Addr,unsigned char Data)
{
while(EECR & (1< EEAR=Addr;
EEDR=Data;

EECR|=(1<

EECR|=(1< }

unsigned char E2PROM_Read(unsigned int Addr)
{
while(EECR & (1<

EEAR=Addr;
EECR|=(1<

return EEDR;
}

E2PROM读写函数,没有考虑中断的影响,毕竟这东西用的不多,本来以为这样子就可以用了,写了段记录开机次数的程序。

temp=E2PROM_Read(0×00a);

E2PROM_Write(0×00a,temp+1);

运行,结果0×00a地址的值确实在增加,只不过是不停的增加,换句话来说就是单片机不停的重启,查了写资料,发现是看门狗的缘故,在写E2PROM的时候必须喂狗,不然单片机就会复位。看门狗的操作我还不会,所以就从熔丝把看门狗关了,程序运行正常。明天有时间研究看门狗去。。。

Jacob 技术 , ,

  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.

*

Anti-spam image