原本是开始学EDA时开的博客,但最近转向嵌入式学习,但这还是我比较喜欢和常来的地方,也非常希望走过的朋友能留下你们的足迹。QQ:94073982。ARM-Linux的学习群:群号:60696568(嵌入式Linux-s3c2410)。欢迎加入。
ARM9硬件接口学习之二 RTC
上一篇 /
下一篇 2008-09-29 18:52:48
在一个嵌入式系统中,实时时钟单元可以其提供可靠的时钟,包括时分秒和年月日;即使在系统处于关机状态下它也能够正常工作(通常采用后备电池供电),它的外围也不需要太多的辅助电路,典型的就是只需要一个高精度的晶振。
S3c2410 RTC特性:
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位就行。
代码下载:
导入论坛
收藏
分享给好友
推荐到圈子
管理
举报
TAG: