打印
[AVR单片机]

AVR内部Eeprom断电保存有问题

[复制链接]
3090|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
大碗拉面|  楼主 | 2009-11-18 12:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
大碗拉面|  楼主 | 2009-11-18 12:54 | 只看该作者
更正一下
应该是断电之后数据就没有保存
再次上电后读出来的数都是0XFF

使用特权

评论回复
板凳
大碗拉面|  楼主 | 2009-11-18 13:21 | 只看该作者
eeprom地址为0或1时有此现象
当我将地址改为9项0时就好了
不知为什么

使用特权

评论回复
地板
weiweiliou| | 2009-11-18 13:23 | 只看该作者
1,你程序可能有问题,
2,你的MCU读写次数过多,EEPROM已经损坏了

使用特权

评论回复
5
大碗拉面|  楼主 | 2009-11-18 13:59 | 只看该作者
谢谢楼上的朋友
1.那我把程序贴上来
void Write_MegaEeprom(unsigned int address,unsigned char data)
{

unsigned char i = 0;
while( (EECR & (1 << EEWE)) && (i < MAX_COUNT) )                
{
i++;
}
if( i < MAX_COUNT )
{
EEAR = address;
EEDR = data;
EECR |= (1<<EEMWE);
EECR |= (1<<EEWE);
}
}

unsigned char Read_MegaEeprom(unsigned int address)
{
unsigned char i = 0;
while( (EECR & (1 << EEWE)) && (i < MAX_COUNT) )
{
i++;
}                
if( i < MAX_COUNT )
{
EEAR = address;
EECR |= ( 1 << EERE );
return EEDR;
}
return 0;
}
2.我换了一块32也出现这个问题

使用特权

评论回复
6
chen3bing| | 2009-11-18 15:37 | 只看该作者
void Write_MegaEeprom(unsigned int address,unsigned char data)
{

while(EECR & (1 << EEWE)) ;              

EEAR = address;
EEDR = data;
EECR |= (1<<EEMWE);
EECR |= (1<<EEWE);
}
用这个程序试试。

使用特权

评论回复
7
laslison| | 2009-11-18 22:48 | 只看该作者
看看:P

使用特权

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

本版积分规则

35

主题

429

帖子

4

粉丝