发表于:2010-02-21 07:24:59
楼主
在很多PIC24单片机中,没有EEPROM,无法保存用户参数。不过PIC24支持自编程技术,这样可以利用Flash模拟EEPROM。Microchip提供了这样的一个软件库,可以很方便的实现这个功能。软件的使用方法很简单,最基本只需要3个子函数:
DataEEInit(void);
unsigned int DataEERead(unsigned int addr);
unsigned ch ar DataEEWrite(unsigned int data, unsigned int addr);
先调用DataEEInit进行初始化,然后使用DataEERead读取数据,或者DataEEWrite写入数据。
一个简单的例子:
int main(void)
{
unsigned ch ar value;
unsigned ch ar DEEdata = 25;
unsigned int DEEaddr1 = 4, DEEaddr2 = 255, DEEaddr3 = 302;
DataEEInit();
dataEEFlags.val = 0;
DataEEWrite(DEEdata,DEEaddr1);
value = DataEERead(DEEaddr1);
Nop();
DataEEWrite(DEEdata*2,DEEaddr2);
value = DataEERead(DEEaddr2);
Nop();
DataEEWrite(DEEdata*3,DEEaddr3);
value = DataEERead(DEEaddr3);
Nop();
return(0);
}
因为Flash的工艺和EEPROM的不同,所以Flash的擦写次数和数据保存时间是比EEPROM少很多的。为了避免反复对同一个区域擦写造成对FLash寿命的影响,软件库会自动写入不同的Flash位置。具体的可以参考附件中的AN1095。
http://space.ednchina.com/upload/2009/5/12/031f2be9-6d6a-4d72-8246-3891aae8cc85.zip
180K, Emulating Data EEPROM 1.1.1