Recesas Microconting系列RA09⸺RTC
作者:365bet体育日期:2025/06/30 浏览:
本文被引用为RA0E1的RTC外围(真实时钟)。基本上,即使在停电后,也可以继续工作的计时器。实时RA0E1时钟(RTC)具有两种计数模式:日历计数模式和二进制计数模式。该模式可以从注册配置更改。在日历计数模式下,RTC具有2000年至2099年的100年日历,自动调整了LEAP年的日期。在二进制计数模式下,RTC具有秒数,并将信息视为序列值。二进制计数模式可以与Gregorian日历(West Calendar)以外的其他日历一起使用。本文将向您展示如何主要使用RASC配置RTC,使用RTC中断更新时间,并与OLED实时显示时间。 1。打开SCART配置工具并添加一个新堆:2。在G_RTC属性中,设置COMO G_RTC0,启用中断,在RTC_Callback中建立中断功能,而中断LEVEL是优先级33。保存配置并复制代码。 4。添加drv_rtc.c/h,并为drv_rtc.c添加代码如下:int rtcdrvinit(void)2。{3。 rtc_time_t settime = {4。 .tm_sec = 0,// s5。 .tm_min = 45,//分钟6。 .tm_hour = 19,//小时7。 .tm_may = 29,//天(在月中)8 .tm_wday = 3,//每周9个。 .tm_mon = 6,//10。12.13。 fsp_er_t er = g_rtc0.p_api Open(g_rtc0.p_ctrl,g_rtc0.p_cfg); 14。确认(fsp_success == er); 15.16。 er = g_rtc0.p_api-candalentimet(g_rtc0.p_ctrl,settime); 17。确认(fsp_success == er); 18.19。 er = g_rtc0.p_api-candalentimet(g_rtc0.p_ctrl,settime); 17。确认(fsp_success == er); 18.19。 er = g_rtc0.p_api- fertioncirqratoset(g_rtc0.p_ctrl,rtc_peryic_irq_select_1_second); 20。确认(fsp_sucss == err); 21.22。返回真实; 23.}此功能是初始化RTC。首先,定义结构的结构,并添加一个日历Artimet,以建立年度,月,日,分钟,第二和初始化时间。使用正常Qratoset建立1秒钟的中断。您想在剪贴板的印象中展示平销吗? 1。void rtc_callback(rtc_callback_args_t *p_args)2。{3。如果(rtc_event_periodic_irq == p_args-事件)4。{5。 /*如果暂停期间*/6,请恢复日期。 grtcperiodflag = true; 7。G_RTC0.P_API-CANDALEARTIMSET(G_RTC0.P_CTRL,(RTC_TIME_T*)GCURTIME); 8.} 9.}呼叫返回功能的更新获取时间指示器,并在GCURTIME中读取当前时间。同时,打开rtcdrvgetime函数并打开返回时间。您想在剪贴板的印象中展示平销吗? 1。int rtcdrvgetime(rtc_time_t *time)2。{3。 if(rtcdrvwaitperiodint())4。{5。 *time = gcurtime; 6。returnlve true; 7.} 8。返回false; 9.} 1带有主函数的测试将首先初始化RTC,然后它们将花费大量时间,并将在OLED屏幕上进行更新。在此实验中,我们使用面向对象的编程想法来增强RTC,达到中断1秒钟,并获得Leback的时刻,并将其实时更新到OLED屏幕。实验现象:
相关文章