ARM9(S3C2440)之五实时时钟(RTC).docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ARM9(S3C2440)之五实时时钟(RTC)

五??ARM9(S3C2440)的实时时钟(RTC)——理论知识转载自:骨Zi里德骄傲? 在一个嵌入式系统中,实时时钟单元可以提供可靠的时钟,包括时、分、秒和年、月、日。即使系统处于关机状态下,它也能够正常工作(通常采用后备电池供电,能够可靠工作十年),其外围也不需要太多的辅助电路,只需要一个高精度的晶振。它具有以下特点:? 时钟数据采用BCD编码或二进制表示;? 能够对闰年的年、月、日进行自动处理;? 具有告警功能,当系统处于关机状态时,能产生告警中断;? 具有独立的电源输入;? 提供毫秒级的时钟中断,该中断可用于嵌入式操作系统的内核时钟。?实时时钟特殊功能寄存器实时时钟控制(RTCCON)寄存器RTCCON 寄存器由4 位组成,如控制BCD 寄存器读/写使能的RTCEN、CLKSEL、CNTSEL 和测试用的CLKRST。RTCEN 位可以控制所有CPU 与RTC 之间的接口,因此在系统复位后在RTC 控制程序中必须设置为1 来使能数据的读/写。同样的在掉电前,RTCEN 位应该清除为0 来预防误写入RTC 寄存器中。RTC 闹钟控制(RTCALM)寄存器RTCALM 寄存器决定了闹钟使能和闹钟时间。请注意RTCALM 寄存器在掉电模式中同时通过INT_RTC 和PMWKUP 产生闹钟信号,但是在正常工作模式中只产生INT_RTC。闹钟秒数据(ALMSEC)寄存器:闹钟秒数据寄存器同理:闹钟分数据(ALMMIN)寄存器,闹钟时数据(ALMHOUR)寄存器,闹钟日数据(ALMDATE)寄存器,闹钟月数据(ALMMON)寄存器,闹钟年数据(ALMYEAR)寄存器BCD 秒(BCDSEC)寄存器:存储的是当前时间秒,同样还有,BCDMIN,BCDHOUR,BCDDATE(日),BCDDAY(星期),BCDMON,BCDYEAR注意以上这些寄存器存储的数据都是BCD码,即是自动处理的数据,如果自己想做时钟显示时,如果调时间的请注意时间加减时实际上是十六进制的下面结合具体的程序介绍一下RTC操作程序编写包括三步,第一步是时钟初始化,第二步把嵌入式控制系统投入运行时要将当前准确时间写入RTC,俗称效表;第三步是系统正常运行后,读取RTC时间在LCD上显示。?废话少说,上程序(开发板FL2440)#include def.h#include option.h#include 2440addr.hU8 beep=1;void __irq IsrAlarm(void);//下面这些都是函数声明void delay(int x);void RTC_Alm_Set(U8 almyear,U8 almmon,U8 almdate,?????????????? U8 almhour,U8 almmin,U8 almsec);?????????????? void RTC_Time_Set( U8 wRTCyear,U8 wRTCmon,U8 wRTCdate,U8 wRTCday,U8 wRTChour,U8 wRTCmin,U8 wRTCsec );void OpenAlarm(void) ;void CloseAlarm(void) ;//==================================================================================??void RTC_Time_Set( U8 wRTCyear,U8 wRTCmon,U8 wRTCdate,U8 wRTCday,U8 wRTChour,U8 wRTCmin,U8 wRTCsec )//时间设置函数,操作是不是比较简单?呵呵{?rRTCCON = 1 ;??//RTC 读写使能?rBCDYEAR = wRTCyear ;??//年??? rBCDMON? = wRTCmon ;??//月??? rBCDDATE = wRTCdate ;??//日??rBCDDAY? = wRTCday ;??//星期?rBCDHOUR = wRTChour ;??//小时??? rBCDMIN? = wRTCmin ;??//分??? rBCDSEC? = wRTCsec ;??//秒??rRTCCON = ~1 ;??//RTC read and write disable}void RTC_Alm_Set(U8 almyear,U8 almmon,U8 almdate,?????????????? U8 almhour,U8 almmin,U8 almsec)//年、月、日、时、分、秒//闹钟设置{?? rRTCCON=0x01;????? //RTCCON实时时钟控制寄存器,??????????????????????????

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档