20.RTC实验

RTC简介

在这里插入图片描述

4412下的RTC控制器

BCD码:用四位二进制数表示一位十进制数。
alarm:闹铃功能。当设置的闹铃预期时间与实际时间相等,激发闹铃功能。
在这里插入图片描述
原理简述:晶振通过分频器分频后降到1Hz,即1秒输入信号1次,信号给秒寄存器做累加,当累加到60给分寄存器发信号让其累加,当分寄存器累加到60给小时寄存器发信号,其会累加,以此类推实现实时时钟。
在这里插入图片描述

RTC寄存器详解

在这里插入图片描述
用BCD数表示则000000100011表示023,四位二进制表示1位十进制数。没有千位,因为千位默认是2,有生之年不会改变没必要做一个寄存器浪费资源。023表示2023年。
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述

RTC编程


#include "exynos_4412.h"

int main()
{
	unsigned int OldSec = 0, NewSec = 0;

	/*使能RTC控制*/
	RTCCON = RTCCON | 1;
	/*校准时间信息,十六进制正好也是对应4个二进制数,因此可以直接用十六进制表示bcd码*/
	RTC.BCDYEAR = 0x023;
	RTC.BCDMON  = 0x12;
	RTC.BCDDAY  = 0x7;
	RTC.BCDWEEK = 0x31;
	RTC.BCDHOUR = 0x23;
	RTC.BCDMIN  = 0x59;
	RTC.BCDSEC  = 0x50;
	/*禁止RTC控制*/
	RTCCON = RTCCON &  (~(1));

	while(1)
	{
		//实现1秒打印1次
		NewSec = RTC.BCDSEC;
		if(OldSec != NewSec)
		{
			printf("20%x-%x-%x %x %x:%x:%x\n",RTC.BCDYEAR, RTC.BCDMON, RTC.BCDWEEK, RTC.BCDDAY, RTC.BCDHOUR, RTC.BCDMIN, RTC.BCDSEC);	
			OldSec = NewSec;
		}
	}
	return 0;
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值