瑞萨RL78/G13单片机R5F100FE内部RTC驱动程序

实时时钟RTC相关索引

1.单片机RTC及时钟芯片的时间到底从哪一年起始?
2.STM32F103单片机内部RTC实时时钟驱动程序
3.实时时钟芯片DS1302单片机C语言驱动程序
4.实时时钟芯片DS1307单片机C语言驱动程序
5.瑞萨RL78/G13单片机R5F100FE内部RTC驱动程序

一、概述

使用单片机为R5F100FE,IDE为CS+ for CA,CX V4.00.00,编译工具为CA78K0R。

二、Code Generator配置

先看手册中的相关描述:
在这里插入图片描述R5F100FE为44引脚芯片,可以进行年月日等的时间计数,但是需要注意的是要外接32.768KHz的晶振,作为副系统时钟。
Code Generator中Clock Generator–>Clock Setting的配置如下,主要是副系统时钟fSUB的设置,其他可按照实际需要自行配置:
在这里插入图片描述Real-time Clock的配置可参考下图,启用RTC功能,小时模式可根据需要选择,这里展示的是24小时模式,初始时间、1Hz引脚输出、闹钟、中断等功能可根据需要配置:
在这里插入图片描述
其他需要的功能配置好后,点击Generate Code生成代码。

三、主要代码

自动生成的与RTC相关的代码,在r_cg_rtc.c文件中,主要函数如下:

void R_RTC_Create(void);
void R_RTC_Start(void);
void R_RTC_Stop(void);
MD_STATUS R_RTC_Get_CounterValue(rtc_counter_value_t * const counter_read_val);
MD_STATUS R_RTC_Set_CounterValue(rtc_counter_value_t counter_write_val);

包含头文件r_cg_rtc.h即可调用,每个函数的功能从名字即可看出,void R_RTC_Create(void)函数为RTC模块的初始化,void R_RTC_Start(void)函数启动RTC模块,void R_RTC_Stop(void)函数停止RTC功能;
如果需要获取RTC时间,则调用MD_STATUS R_RTC_Get_CounterValue(rtc_counter_value_t * const counter_read_val)函数,counter_read_val即为BCD格式的时间结构体,同样,调用MD_STATUS R_RTC_Set_CounterValue(rtc_counter_value_t counter_write_val)则可以设置时间,counter_write_val为BCD格式的时间;这两个函数的使用方法可参考如下:

1.获取时间

rtc_counter_value_t temp;
R_RTC_Get_CounterValue(&temp);
//以下演示打印时间,未打印星期几
printf("  %02d-%02d-%02d,%02d:%02d:%02d\n", BCDToDec(temp.year), BCDToDec(temp.month), BCDToDec(temp.day), BCDToDec(temp.hour), BCDToDec(temp.min), BCDToDec(temp.sec));

2.设置时间

	rtc_counter_value_t temp;
	//设置为24-5-15 20:30:40,星期三
	temp.year = DecToBCD(24);
	temp.month = DecToBCD(5);
	temp.week = DecToBCD(3);
	temp.day = DecToBCD(15);	
	temp.hour = DecToBCD(20);
	temp.min = DecToBCD(30);
	temp.sec = DecToBCD(40);
	R_RTC_Set_CounterValue(temp);

以上的BCDToDec()函数及DecToBCD()函数,可参考BCD码与十进制数转换C语言程序;数据类型rtc_counter_value_t的声明在头文件 "r_cg_rtc.h"中;
获取时间及设置时间后的,打印输出的效果,可参考单片机RTC及时钟芯片的时间到底从哪一年起始?

四、总结

瑞萨RL78/G13系列芯片没有外接电池的引脚,没有后备寄存器,因此在系统断电后无法保存时间;如果要实现断电后RTC继续计时,必须通过其他方式给系统切换供电,否则上电会将RTC时间也初始化;因此,该系列芯片的RTC功能用来做实时时钟的话,功能不全,但用来做中断,唤醒STOP模式,会比较好用。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值