请马老师指教:如何将数组写入EEPROM中?
有一数组:S={0X02,0X04,0X06,0X08,0X09}如何在上电时将其写入EEPROM,作参数修改后保存,并在下次再上电时从EEPROM读出来? 我是这样处理的:
1.定义2个数组变量如下:
flash char s = {0X02,0X04,0X06,0X08,0X09};
eeprom char flag,e_s;
2.上电后程序先检查flag是否为一特定值(如0x5A),代码如下:
if (flag != 0x5a)
{
for(i=0,i<=4,i++) e_s = s;
flag = 0x5a;
}
后面读取EEPROM中的数据,并使用。
--------------------------------------------------------------
另外的方法,就是直接定义EEPROM的数组: eeprom char e_s = {0X02,0X04,0X06,0X08,0X09};
此时下载程序代码时需要同时将EEPROM中的初始化值文件一同下载。
这样的做法,上电后直接读取EEPROM中数据使用。
---------------------------------------------------------------
两种方法都可以,你自己判断哪个方便。
以上代码是以CVAVR的环境为基础的,使用其它开发平台可以参考。 和常用第一种方法,不过是在IAR中较方便 感谢马老师! 在AIR中,e_s = s; 执行这条指令后是不是要等待8ms?
如果是,如何用C语言实现写了EEPROM后,不用停在那里等待写操作完成?
页:
[1]