6. RTC功能

6.1. RTC功能介绍

1、读写时钟时间

读取/修改时钟时间

2、读写闹钟时间

读取/修改闹钟设置时间

3、闹钟功能

当设定的闹钟时间与RTC的时钟时间相同时,会触发中断并执行相应的回调函数(可配置)

4、定时唤醒功能

开启该功能后,每隔一段时间会触发唤醒中断并且执行相应的回调函数(可配置)


6.2. RTC配置参数

"图1 RTC配置和初始化"

图1 RTC配置和初始化

注意事项:

1、RTC时钟源的设置可选内部LRC或者外部32K晶振

(1)设置LRC为时钟源时,RTC时钟会有偏差; (2)设置外部晶振为时钟源时,RTC时钟准确;

注意:AD16N开发板上使用外部32K晶振需要短接顶板部分电路:

"图1 RTC时钟源硬件配置"

图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后能够定时唤醒执行相应动作(如读取当前时间);