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
}