RSS

简单而实用的EEPROM读写程序

发布时间:2007-01-10 关键字: 程序 实用 简单 val EECR // 大家 addr while 中断 测试
     第一次使用AVR,正好测试它的EEPROM功能,看了各位大虾的帖子,
总感觉太复杂,代码量也比较大,尝试着写了以下读写程序,经过
测试暂时没发现问题,现写出来给大家共享,希望能提供给大家一
些参考,也希望使用过后大家也在后面跟帖回上自己的心得,以提
供给后来人,谢谢大家。

对于如何避免读的时候写EEPROM,编程中考虑好就行了,我的经验
是都在主程序中进行读写胜过任何纠错机制。
对于中断的影响,因为关中断的时间只有几微秒,几乎可以不考虑,
我测试的程序就是带中断的。
void eeprom_write (uchar num, uint addr, uchar *val)
{
 while (num)
 {
   while ( EECR&0x02 );  //判断EEWE是否为0
   EEAR = addr;
   EEDR = *val;
   CLI();
   EECR = EECR|0x04;     //置EEMWE为1
   EECR = EECR|0x02;     //置EEWE为1
   SEI();
   addr++;
   val++; 
   num--;
 } 
}

void eeprom_read (uchar num, uint addr, uchar *val)
{
 while (num)
 {
   while ( EECR&0x01 );  //判断EEWE是否为0
   EEAR = addr;
   EECR = EECR|0x01;     //置EERE为1
   *val = EEDR;
   addr++;
   val++; 
   num--;
 }
}



最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册