在很多PIC24单片机中,没有EEPROM,无法保存用户参数。不过PIC24支持自编程技术,这样可以利用Flash模拟EEPROM。Microchip提供了这样的一个软件库,可以很方便的实现这个功能。软件的使用方法很简单,最基本只需要3个子函数:
DataEEInit(void);
unsigned int DataEERead(unsigned int addr);
unsigned char DataEEWrite(unsigned int data, unsigned int addr);
先调用DataEEInit进行初始化,然后使用DataEERead读取数据,或者DataEEWrite写入数据。
一个简单的例子:
int main(void)
{
unsigned char value;
unsigned char 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。
180K, Emulating Data EEPROM 1.1.1
转自:http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2680&dDocName=en538000
文章评论(0条评论)
登录后参与讨论