Alarm
Alarm示例实现了多闹钟功能。示例程序中会每秒打印一次当前的时间信息。
Alarm示例的源代码和工程文件位于SDK_Folder\projects\peripheral\rtc\alarm,其中工程文件在文件夹Keil_5下。
代码理解
示例工程流程图如图 27所示:
- Alarm的初始化。
app_time_t s_time = {0, 8, 9, 28, 10, 19 , 0, 0}; app_alarm_t s_alarm; app_drv_err_t app_err_code; app_err_code = app_alarm_init(alarm_data_tag, app_alarm_fun); if (app_err_code != APP_DRV_SUCCESS) { printf(" Initializing the alarm failed!\r\n"); return; } app_err_code = app_alarm_set_time(&s_time); if (app_err_code != APP_DRV_SUCCESS) { printf(" Initializing the alarm time failed!\r\n"); return; } app_alarm_reload(); app_alarm_del_all(); s_alarm.hour = 9; s_alarm.min = 10; s_alarm.alarm_sel = CALENDAR_ALARM_SEL_WEEKDAY; s_alarm.alarm_date_week_mask = 0x7F; app_alarm_add(&s_alarm, alarm_0);ALARM闹钟详细参数设置,请参考Calendar。
- 初始化闹钟并设置闹钟用户回调函数。代码如下:
app_alarm_init(alarm_data_tag, app_alarm_fun); - 设置设备系统当前的时间。代码如下:
app_alarm_set_time(&s_time); - 重载系统闹钟,此函数必须在每次设置系统时间后调用。代码如下:
app_alarm_reload(); - 删除当前所有闹钟。代码如下:
app_alarm_del_all(); - 添加系统闹钟。代码如下:
app_alarm_add(&s_alarm, alarm_0);
测试验证
- 用GProgrammer下载alarm.bin至开发板。
- 将开发板串口连接至PC端,打开并配置GRUart。
- 在GRUart的Receive Data窗口中每秒打印一次当前的时间信息。