RTC功能 ==================== RTC功能介绍 ##################### 1、读写时钟时间 读取/修改时钟时间 2、读写闹钟时间 读取/修改闹钟设置时间 3、闹钟功能 当设定的闹钟时间与RTC的时钟时间相同时,会触发中断并执行相应的回调函数(可配置) 4、定时唤醒功能 开启该功能后,每隔一段时间会触发唤醒中断并且执行相应的回调函数(可配置) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ RTC配置参数 ################### .. image:: 19-2-1-RTC_config.png :alt: "图1 RTC配置和初始化" :align: center .. centered:: 图1 RTC配置和初始化 注意事项: 1、RTC时钟源的设置可选内部LRC或者外部32K晶振 (1)设置LRC为时钟源时,RTC时钟会有偏差; (2)设置外部晶振为时钟源时,RTC时钟准确; 注意:AD16N开发板上使用外部32K晶振需要短接顶板部分电路: .. image:: 19-2-2-RTC_CLK_SEL.png :alt: "图1 RTC时钟源硬件配置" :align: center .. centered:: 图1 RTC时钟源硬件配置 2、定时唤醒和闹钟唤醒的回调函数是在中断做处理的,所以执行时间不可过长。 3、当开启RTC功能后,powerdown和soft off的功耗会增加5uA+的功耗。 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ RTC接口函数 ################################# void read_current_time(); *********************************** 该函数是获取当前时间并打印显示出来,直接使用即可。 void write_clock_time(u16 year , u8 month , u8 day , u8 hour , u8 min , u8 sec); *********************************************************************************************** 该函数是修改时钟时间; | ①u16 year : 年 | ②u8 month : 月 | ③u8 day : 日 | ④u8 hour : 时 | ⑤u8 min : 分 | ⑥u8 sec : 秒 void rea_alarm_time(); *********************************** 该函数是获取设置的闹钟时间并打印显示出来,直接使用即可。 void write_alarm_time(u16 year , u8 month , u8 day , u8 hour , u8 min , u8 sec); ********************************************************************************************* 该函数是修改闹钟时间; | ①u16 year : 年 | ②u8 month : 月 | ③u8 day : 日 | ④u8 hour : 时 | ⑤u8 min : 分 | ⑥u8 sec : 秒 void time_wakeup_set(u8 index , u8 en); ************************************************ 该函数是设置RTC定时唤醒开启/关闭; ①index : RTC定时唤醒时间;参数如下: :: * RTC_WKUP_SRC_256HZ * RTC_WKUP_SRC_64HZ * RTC_WKUP_SRC_2HZ //每隔0.5s唤醒一次 * RTC_WKUP_SRC_1HZ //每隔1s唤醒一次 ②en :定时唤醒使能;参数如下: | 0:关闭 | 1:开启 void set_alarm_ctrl(u8 set_alarm); *********************************************** 该函数是开启/关闭闹钟功能;参数如下: set_alarm :0关闭,1开启 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ RTC简单使用示例 ######################################## | RTC模块有两个示范程序:rtc_app();和rtc_timed_wakeup_app(); | 可以选择在app.c里选择rtc模式使用哪个模式 1、rtc_app(); 该模式主要展示RTC的基本功能和简单使用方法,如读写时钟,读写闹钟,开关闹钟,开关定时唤醒; 2、rtc_timed_wakeup_app(); 该模式主要展示芯片在进入powerdown后能够定时唤醒执行相应动作(如读取当前时间);