Chinaunix首页 | 论坛 | 博客
  • 博客访问: 478804
  • 博文数量: 73
  • 博客积分: 1170
  • 博客等级: 少尉
  • 技术积分: 720
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-20 15:48
文章分类

全部博文(73)

文章存档

2013年(9)

2012年(64)

我的朋友

分类:

2012-05-14 15:11:29

原文地址:ARM9硬件接口学习之二 RTC 作者:dongas

在一个嵌入式系统中,实时时钟单元可以其提供可靠的时钟,包括时分秒和年月日;即使在系统处于关机状态下它也能够正常工作(通常采用后备电池供电),它的外围也不需要太多的辅助电路,典型的就是只需要一个高精度的晶振。

 

S3c2410 RTC特性:

1.时钟数据采用BCD编码

2.能够对闰年的年月日进行自动处理

3.具有告警功能,当系统处于关机状态时,能产生告警中断;

4.具有独立的电源输入

5.提供毫秒级时钟中断,该中断可用于作为嵌入式操作系统的内核时钟

6.使用独立外部时钟晶震,频率为32.768khz

 

 

RTC相比Watchdog,寄存器比较多。但这里我们只需要先通过实验实现RTC时间的读写功能,因此只要先了解时钟控制寄存器RTCOONBCD时钟寄存器(SECMINHOUR等),其他和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时钟寄存器的读写就变得非常方便。

 

2BCD时钟寄存器

包括BCDSECBCDMIN BCDHOUR等。里面存储时钟对应的BCD码。

 

实验为设置和读取RTC的时间。代码很简单,这里就不写了,看一下就知道。只要注意读写RTC时钟寄存器前要先打开RTCEN位就行。

 

代码下载:

文件: rtc.rar
大小: 22KB
下载: 下载

 

返回ARM9硬件接口学习专题

阅读(1254) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~