打印
[AVR单片机]

AMEGA64 eeprom读写问题

[复制链接]
1853|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
空灵宝贝99|  楼主 | 2010-3-17 14:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请教各位高手,我正在使用Amega64芯片,环境为AVR studio4.16版本,我按照例程编写了eeprom读取和写入程序,程序下载后,可以读回eeprom中某个地址中的数据,但无法写入,请教各位高手问题出在哪,程序如下:
void EEPROM_write(unsigned int EEADDR,unsigned char EEDATA)
{
     while(EECR&0x02);    //wait for EEWE=0
   
     EEAR=EEADDR;
  EEDR=EEDATA;
     EECR|=0x04;        //EEMWE=1
    // EECR&=~0x02;
     EECR|=0x02;        //EEWE=1

}

unsigned char EEPROM_read(unsigned int EEADDR)
{unsigned char ii;
     while(EECR&0x02);    //wait for EEWE=0

     EEAR=EEADDR;
     EECR|=0x01;        //EEWE=1
     ii=EEDR;
     return ii;
}
eeprom始终无法写入,查看eeprom中写入地址中的数据为0xff,非常感谢各位!

相关帖子

沙发
笑苍天| | 2010-3-17 15:23 | 只看该作者
写内部eeprom时注意不要被中断打断。

使用特权

评论回复
板凳
liao_fangxing| | 2010-3-18 11:13 | 只看该作者
本帖最后由 liao_fangxing 于 2010-3-18 11:18 编辑

这2个子函数没什么问题, 得注意其他方面的问题了,如:
1、进入读/写EEPROM子函数前有没有屏蔽中断,出来时开启中断
2、确定程序已进入读/写EEPROM子函数——————以防是因为其他结构问题没能进入读/写
3、测试读/写程序的地址是否一致——————以防写的是地址0x0F,读的却是0x2F
4、写入后是否可能被不可控再写?
5、LZ是先写再读?写后掉电,再上电读取?各种情况出现问题的原因有所不同
6、请楼下的大侠补齐:lol

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

1

帖子

1

粉丝