6. RTC功能
6.1. RTC功能介绍
- 1、读写时钟时间
读取/修改时钟时间
- 2、读写闹钟时间
读取/修改闹钟设置时间
- 3、闹钟功能
当设定的闹钟时间与RTC的时钟时间相同时,会触发中断并执行相应的回调函数(可配置)
- 4、定时唤醒功能
开启该功能后,每隔一段时间会触发唤醒中断并且执行相应的回调函数(可配置)
6.2. RTC配置参数
![]()
图1 RTC配置和初始化
- 注意事项:
1、RTC时钟源的设置可选内部LRC或者外部32K晶振
(1)设置LRC为时钟源时,RTC时钟会有偏差; (2)设置外部晶振为时钟源时,RTC时钟准确;
注意:AD16N开发板上使用外部32K晶振需要短接顶板部分电路:
![]()
图1 RTC时钟源硬件配置
2、定时唤醒和闹钟唤醒的回调函数是在中断做处理的,所以执行时间不可过长。
3、当开启RTC功能后,powerdown和soft off的功耗会增加5uA+的功耗。
6.3. RTC接口函数
6.3.1. void read_current_time();
该函数是获取当前时间并打印显示出来,直接使用即可。
6.3.2. 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 : 秒
6.3.3. void rea_alarm_time();
该函数是获取设置的闹钟时间并打印显示出来,直接使用即可。
6.3.4. 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 : 秒
6.3.5. 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:开启
6.3.6. void set_alarm_ctrl(u8 set_alarm);
该函数是开启/关闭闹钟功能;参数如下: set_alarm :0关闭,1开启
6.4. RTC简单使用示例
RTC模块有两个示范程序:rtc_app();和rtc_timed_wakeup_app();可以选择在app.c里选择rtc模式使用哪个模式
- 1、rtc_app();
该模式主要展示RTC的基本功能和简单使用方法,如读写时钟,读写闹钟,开关闹钟,开关定时唤醒;
- 2、rtc_timed_wakeup_app();
该模式主要展示芯片在进入powerdown后能够定时唤醒执行相应动作(如读取当前时间);