6. RTC
Overview
以 AC632N 为例,读取并修改重新配置 RTC 时间,再读取并修改重新配置当前的闹钟时间。提供 RTC 的应用示例、工程配置、API 介绍和常见问题。
6.1. 应用示例
RTC 的具体源代码详见 sdk/bsp/AC632N/src/rtc.c
rtc.c
中参考示例如下:void rtc_test_demo() { struct sys_time tmp_time; memset((u8 *)&tmp_time, 0, sizeof(tmp_time)); rtc_init(&rtc_data); //初始化rtc rtc_read_time(&tmp_time); //读当前rtc时间 log_info("rtc_rtc_read_time_before: %d-%d-%d %d:%d:%d", tmp_time.year, tmp_time.month, tmp_time.day, tmp_time.hour, tmp_time.min, tmp_time.sec); //打印读取时间值 rtc_write_time(&test_sys_time); //修改rtc时间 rtc_read_time(&tmp_time); //读修改后rtc时间 log_info("rtc_rtc_read_time_after: %d-%d-%d %d:%d:%d", tmp_time.year, tmp_time.month, tmp_time.day, tmp_time.hour, tmp_time.min, tmp_time.sec); //打印修改后时间值 rtc_read_alarm(&tmp_time); //读当前alarm时间 log_info("rtc_read_alarm_before: %d-%d-%d %d:%d:%d", tmp_time.year, tmp_time.month, tmp_time.day, tmp_time.hour, tmp_time.min, tmp_time.sec); //打印读取闹钟时间值 rtc_write_alarm(&test_alarm); //修改alarm时间 rtc_read_alarm(&tmp_time); //读修改后alarm时间 log_info("rtc_read_alarm_after: %d-%d-%d %d:%d:%d", tmp_time.year, tmp_time.month, tmp_time.day, tmp_time.hour, tmp_time.min, tmp_time.sec); //打印修改后闹钟时间值 }
6.2. 工程配置
在 sdk/apps/main.c 中函数
user_main()
添加如下工程代码:int user_main() { extern void rtc_test_demo(void); rtc_test_demo(); }
编译下载后,串口会打印出读取的当前时间、修改后的时间、读取的当前闹钟时间、修改后的闹钟时间。
6.3. API参考
RTC 常用相关 API 介绍,具体软件代码见 sdk/bsp/AC632N/src/rtc.c
Functions
-
int rtc_init(struct rtc_data *arg)
初始化rtc
- Parameters
arg – rtc参数结构体
- Returns
0
-
void rtc_set_alarm_ctrl(u8 set_alarm)
开关闹钟
- Parameters
set_alarm – 0->关 1->开
- Returns
NULL
-
void rtc_write_time(struct sys_time *curr_time)
写入rtc时间
- Parameters
curr_time – 写入的目标时间
- Returns
NULL
-
void rtc_read_time(struct sys_time *curr_time)
读出rtc时间
- Parameters
curr_time – 读出当前时间
- Returns
NULL
-
void rtc_write_alarm(struct sys_time *alarm_time)
写入闹钟时间
- Parameters
alarm_time – 写入的目标闹钟时间
- Returns
NULL
-
void rtc_read_alarm(struct sys_time *alarm_time)
读取闹钟时间
- Parameters
alarm_time – 读出的闹钟时间
- Returns
NULL
-
u8 rtc_caculate_weekday_by_time(struct sys_time *r_time)
当前日期换成星期几
- Parameters
time – 当前日期
- Returns
星期几
-
void rtc_time_dump(void)
打印当前时间