
下面的代码示例说明如何用汇编和C函数来读取EEPROM 。在应试
普莱斯假设中断被控制,使得中断不会发生的执行过程中
这些功能。
汇编代码例程
EEPROM_read :
;等待完成?以前写
SBIC
EECR , EEWE
RJMP
EEPROM_READ
;设置地址( R18 : R1 )的地址寄存器
OUT
OUT
SBI
in
RET
EEARH , R18
EEARL , R17
EECR , EERE
r16,EEDR
;启动EEPROM通过W读?章602 EERE
;读取数据再?存器的数据
C代码示例
无符号字符型
EEPROM_read (无符号
INT
uiAddress )
{
/ *等待完成 ?上一次写操作* /
而( EECR & ( 1<<EEWE ) )
;
/ *设置地址记数? R * /
EEAR = uiAddress ;
/*
启动EEPROM意图?通过写EERE * /
EECR | = ( 1<<EERE ) ;
/ *从数据返回的数据?寄存器* /
返回EEDR ;
}
EEPROM写在
掉电休眠
模式
当进入掉电睡眠模式,同时EEPROM写操作是活动的,则
EEPROM写操作将继续,并且将完成前的写访问时间
通过。但是,当写操作完成时,振荡器继续运行,并且如
因此,该装置不进入掉电完全。因此,建议
验证EEPROM写操作进入掉电前完成。
在低V的时期
CC,
在EEPROM中的数据可能被破坏,因为电源电压是
过低,CPU和正确操作的EEPROM中。这些问题都是一样的
用板级系统的EEPROM中,并且在同一设计方案应该被应用。
一个EEPROM数据损坏有两种情况下都导致当电压过低。首先,
一个常规的写序列到EEPROM需要一个最小的电压,以正常工作。节
ondly , CPU本身能够执行指令的错误,如果电源电压过低。
EEPROM数据损坏的问题可以通过以下方法解决:
在保持电源电压不足期间AVR RESET信号(低) 。这可以
通过启用内部欠压检测器( BOD)来完成。如果内部的检测电平
董事会并不需要的检测水平,外部低V匹配
CC
复位保护电路
都可以使用。如果发生了复位,而在写操作过程中,写操作将是
完成的条件是电源电压是足够的。
防止EEPROM
腐败
24
ATmega162/V
2513K–AVR–07/09