E2PROM操作,解决重启问题
#define EERE 0
#define EEWE 1
#define EEMWE 2
void E2PROM_Write(unsigned int Addr,unsigned char Data)
{
while(EECR & (1<
EEDR=Data;
EECR|=(1< EECR|=(1< unsigned char E2PROM_Read(unsigned int Addr) EEAR=Addr; return EEDR; E2PROM读写函数,没有考虑中断的影响,毕竟这东西用的不多,本来以为这样子就可以用了,写了段记录开机次数的程序。 temp=E2PROM_Read(0×00a); E2PROM_Write(0×00a,temp+1); 运行,结果0×00a地址的值确实在增加,只不过是不停的增加,换句话来说就是单片机不停的重启,查了写资料,发现是看门狗的缘故,在写E2PROM的时候必须喂狗,不然单片机就会复位。看门狗的操作我还不会,所以就从熔丝把看门狗关了,程序运行正常。明天有时间研究看门狗去。。。
{
while(EECR & (1<
EECR|=(1<
}