分类:
2012-05-14 15:11:29
原文地址:ARM9硬件接口学习之二 RTC 作者:dongas
在一个嵌入式系统中,实时时钟单元可以其提供可靠的时钟,包括时分秒和年月日;即使在系统处于关机状态下它也能够正常工作(通常采用后备电池供电),它的外围也不需要太多的辅助电路,典型的就是只需要一个高精度的晶振。
S
1.时钟数据采用BCD编码
2.能够对闰年的年月日进行自动处理
3.具有告警功能,当系统处于关机状态时,能产生告警中断;
4.具有独立的电源输入
5.提供毫秒级时钟中断,该中断可用于作为嵌入式操作系统的内核时钟
6.使用独立外部时钟晶震,频率为32.768khz。
RTC相比Watchdog,寄存器比较多。但这里我们只需要先通过实验实现RTC时间的读写功能,因此只要先了解时钟控制寄存器RTCOON、BCD时钟寄存器(SEC、MIN、HOUR等),其他和RTC告警功能等相关的寄存器可以暂时先不管。这样的话RTC接口代码的编写就变得很简单了。
下面分析一下这两个寄存器。
1.钟控制寄存器RTCOON
RTCEN bit can control all interfaces between the CPU and the RTC, so it should be set to 1 in an RTC control routine to enable data read/write after a system reset.
上面这句摘自datasheet。从这句可以知道,读写RTC寄存器前需要先将RTCEN位置1。另外还有一点需要注意的是CNTSEL位,RTC默认是使用BCD编码,这样对BCD时钟寄存器的读写就变得非常方便。
2.BCD时钟寄存器
包括BCDSEC、BCDMIN 、BCDHOUR等。里面存储时钟对应的BCD码。
实验为设置和读取RTC的时间。代码很简单,这里就不写了,看一下就知道。只要注意读写RTC时钟寄存器前要先打开RTCEN位就行。
代码下载:
|