Kidult 发表于 2013-3-31 16:34:03

AVR32 eeprom的读取问题

我知道eeprom里面的内容在掉电之后不会被擦除这一点,但是我在用的时候就郁闷了:
       for(j=0;j++;j<4)
            K_F=Coef_ReadFromEEprom(j);//这个函数用于每次上电时,从eeprom里读取之前已经存入的数据,下面的红字部分是函数定义。
      
                if(K_F==1.0)   
                      RotBlink(1,10);//指示灯。。。
                        
      
    float Coef_ReadFromEEprom(uint8_t COE)//读
{
      return eeprom_read_float (&EEpromCoef) ;//EEpromCoef) 是eeprom变量
}   
K_F[]是一个数组,double 型,里面元素的初始值都是1.0。在程序的运行时,它们的值会被改变,不再等于1.0了,而且能够确认被写入了eeprom里面。
问题是:每次复位之后都应该会执行这一段读取代码,,读完之后再判断K_F是否等于1.0,结果是:灯亮了! 但是我用AVRtighter读出eeprom的时候看到又发现里面的内容并不等于1.0,有的是0.8多的样子!
         很纳闷,难道读取函数没有被执行?难道在判断K_F==1.0的时候会采取四舍五入的方式处理???
   各位大侠,指点下吧,,,先谢谢了!

pangbin4 发表于 2013-3-31 17:59:27

正在想学AVR32,目前不懂,但帮忙顶起来!

Kidult 发表于 2013-3-31 19:37:04

我发现问题了,是for语句的语法写错了。。。。是for(j=0;j<4;j++);而不是for(j=0;j++;j<4);这种错误编译器不管的。。。我承认我在这个程序里面还用了很多个for语句,唯独这个写错了。。。不好意思,我已经扇过自己耳光了
页: [1]
查看完整版本: AVR32 eeprom的读取问题