其他分享
首页 > 其他分享> > ARM接口技术——RTC实时时钟

ARM接口技术——RTC实时时钟

作者:互联网

RTC

RTC简介

RTC(Real Time Clock)即实时时钟,它是一个可以为系统提供精确的时间基准的元器件;

与一般元器件使用的时钟源不同,RTC一般采用精度较高的晶振作为时钟源,因为它对精度要求较高;

一般RTC为了在主电源掉电时还可以工作,需要额外加电池供电。

 

Exynos4412下的RTC控制器

Overview:

有以下关键信息:


 

RTC获取当前时间实验

RTC实验分析

RTC实时时钟框图:

 


 

RTC相关寄存器:

 

有以下寄存器:


 

需要关注的寄存器:

BCDXXX:

 

以BCDYEAR为例,它使用BCD码表示实际时间的年,只用了低12位;

比如 0000 0010 0010,即022,可以用来表示2022年;其它的BCDXXX寄存器同理。


 

RTCCON:

 

RTCCON寄存器只使用了低10位,1-9位都使用默认设置;

只需要关注第0位CTLEN:打开RTC时钟。


 

RTC实验代码

#include "exynos_4412.h"

void RTC_Init()
{
    RTCCON |= 1; /* 打开RTC设置 */

    /* 校准时间 */
    RTC.BCDYEAR = 0x22;     /* 设为022,BCD码: 0000 0010 0010 */
    RTC.BCDMON = 0x04;
    RTC.BCDDAY = 0x04;      /* week,它的日和星期弄反了 */    
    RTC.BCDWEEK = 0x28;     /* day */
    RTC.BCDHOUR = 0x02;
    RTC.BCDMIN = 0x07;
    RTC.BCDSEC = 0x50;

    RTCCON &= (~1); /* 禁止RTC设置 */
}

int main()
{
    RTC_Init();
    while(1)
    {
        printf("20%x-%x-%x %x:%x:%x", RTC.BCDYEAR,  RTC.BCDMON, RTC.BCDWEEK, RTC.BCDHOUR, RTC.BCDMIN, RTC.BCDSEC);
    }
    return 0;
}

 

标签:RTC,接口技术,BCD,RTCCON,0010,寄存器,ARM,时钟
来源: https://www.cnblogs.com/zjccc/p/16201341.html