
下面的代码示例说明如何用汇编和C函数来读取EEPROM 。该
示例假定中断控制,不会发生中断时execu-
化的这些功能。
汇编代码例程
EEPROM_read :
;等待上一次写操作结束
SBIC
RJMP
OUT
OUT
SBI
in
RET
EECR , EEPE
EEPROM_READ
EEARH , R18
EEARL , R17
EECR , EERE
r16,EEDR
;设置地址( R18 : R17 )的地址寄存器
;开始设置EERE以阅读
;读取数据寄存器数据
C代码示例
无符号字符型
EEPROM_read (无符号
CHAR
ucAddress )
{
/ *等待上一次写操作结束* /
而( EECR & ( 1<<EEPE ) )
;
/ *设置地址寄存器* /
EEAR = ucAddress ;
/*
启动EEPROM写读EERE * /
EECR | = ( 1<<EERE ) ;
/ *从数据寄存器返回数据* /
返回EEDR ;
}
3.3.6
防止EEPROM腐败
在低V的时期
CC
中, EEPROM的数据可能被破坏,因为电源电压是
过低,CPU和正确操作的EEPROM中。这些问题都是一样的
用板级系统的EEPROM中,并且在同一设计方案应该被应用。
一个EEPROM数据损坏有两种情况下都导致当电压过低。
首先,常规的写序列到EEPROM需要一个最小的电压来操作cor-
正确。其次, CPU本身能够执行指令的错误,如果电源电压是太
低。
EEPROM数据损坏的问题可以通过以下方法解决:
24
爱特梅尔ATA5505 [初步]
9219A–RFID–01/11