day20-RTC实验

RTC

        RTC(Real Time Clock)即实时时钟,它是一个可以为系统提供精确的时间基准的元器件,RTC一般采用精度较高的晶振作为时钟源,有些RTC为了在主电源掉电时还可以工作,需要外加电池供电

RTC寄存器详解

BCDYEAR

若设置year为2023,则 低12位为 0000 0010 0011

这里的十进制为35

 BCDMON

若设置MON为3,则低5为 0 0011

BCDDAY

若设置DAY为6,则低6位为 00 0110

BCDDAYWEEK

若设置为星期四,则低3位为 011

 BCDHOUR

若设置小时为14时,则低6位为 01 0010

BCDMIN

 

若设置分钟为25分,则低7位为 010 0101

BCDSEC

 若设置秒为45s,则低7位为 100 0101

RTCCON第0位打开,才可以修改RTC寄存器中的值

代码部分

#include "exynos_412.h"

int main(void){
    unsigned int Newsec = 0;Oldsec = 0;
    //1.使能RTC
    RTCCON = RTCCON | 1;
    //2.校准时间信息
    RTC.BCDYEAR = 0x23;
    RTC.BCDMON = 0x12;
    //WEEK和DAY需要写反
    RTC.BCDWEEK = 0X31;
    RTC.BCDDAY = 0X7;
    RTC.BCDHOUR = 0X23;
    RTC.BCDMIN = 0X59;
    RTC.BCDSEC = 0X55;
    //3.禁止RTC控制
    RTCCON = RTCCON & ~(1);
    
    whille(1){
           Newsec = RTC.BCDSEC;
           while(Newsec!=Oldsec){
                printf("20%x-%X-%x %x %x-%x-%x",RTC.BCDYEAR,RTC.BCDMON,RTC.BCDWEEK,RTC.BCDDAY,RTC.BCDHOUR,RTC.BCDMIN,RTC.BCDSEC);
                Oldsec = Newsec;
            }
    }
    


    return 0
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值