EEPROM在运行时可以使用库函数访问,在调用这些函数之前加入#include<eeprom.h>。
EEPROM_READ(int location,object),这个宏调用了EEPROMReadBytes函数,从EE-PROM指定位置读取数据送给数据对象,“object”可以是任意程序变量包括结构和数组。例如:
int i;
EEPROM_Read(0x1,i);//读2B给i
EEPROM_WRITE(int location,object),这个宏调用了EEPROMWriteBytes函数,将数据对象写入到EEPROM的指定位置,“object”可以是任意程序变量包括结构和数组。例如:
int i;
EEPROM_WRITE(0x1,i);//写2B至0x1
这些宏和函数可以用于任意AVR单片机装置。可是对EEPROM单元少于256B的MCU,即使不需要高地址字节它们也是欠佳的,因为它仍然是要写的。如果它关系重大,可以为EEPROM较少的目标装置重新编译库源代码。
EEPROM可以在程序源文件中初始化,在C源文件中它作为一个全局变量被分配到特殊调用区域“eeprom”中的,这是可以用附注实现的,结果是产生扩展名为.eep的输出文件。例如:(www.xing528.com)
EEPROM_READ((int)&foo,i);//i等于0x1234
第2个附注是必须的,为返回默认的“data”区域需要重设数据区名称。注意因为AVR单片机的硬件原因,初始化EEPROM数据至0地址是不可以使用的。注意当使用外部描述(比如访问在另一个文件中的foo),不需要加入这个附注。例如:
如果需要下列函数可以直接使用,上面关于宏的描述对大多数装置应该是有能力的。
unsigned char EEPROMread(int location),从EEPROM指定位置读取1B。
int EEPROMwrite(int location,unsigned char byte),写1B到EEPROM指定位置,如果成功返回0。
void EEPROMReadBytes(int location,void*ptr,int size),从EEPROM指定位置处开始读取“size”个字节至由“ptr”指向的缓冲区。
void EEPROMWriteBytes(int location,void*ptr,int size),从EEPROM指定位置处开始写“size”个字节,写的内容由“ptr”指向的缓冲区提供。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。