12F675 发表于 2008-9-11 23:08:57

请马老师指教:如何将数组写入EEPROM中?

有一数组:S={0X02,0X04,0X06,0X08,0X09}
如何在上电时将其写入EEPROM,作参数修改后保存,并在下次再上电时从EEPROM读出来?

machao 发表于 2008-9-12 01:05:45

我是这样处理的:

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的环境为基础的,使用其它开发平台可以参考。

thoro_avr 发表于 2008-9-12 07:54:55

和常用第一种方法,不过是在IAR中较方便

12F675 发表于 2008-9-12 18:29:26

感谢马老师!

ibq3100 发表于 2008-9-12 21:45:02

在AIR中,e_s = s; 执行这条指令后是不是要等待8ms?
如果是,如何用C语言实现写了EEPROM后,不用停在那里等待写操作完成?
页: [1]
查看完整版本: 请马老师指教:如何将数组写入EEPROM中?