CN / EN
文档反馈
感谢关注汇顶文档,期待您的宝贵建议!
感谢您的反馈,祝您愉快!

Alarm

Alarm示例实现了多闹钟功能。示例程序中会每秒打印一次当前的时间信息。

Alarm示例的源代码和工程文件位于SDK_Folder\projects\peripheral\rtc\alarm,其中工程文件在文件夹Keil_5下。

代码理解

示例工程流程图如图 27所示:

图 27 Alarm示例流程图
  1. 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

  2. 初始化闹钟并设置闹钟用户回调函数。代码如下:
    app_alarm_init(alarm_data_tag, app_alarm_fun);
  3. 设置设备系统当前的时间。代码如下:
    app_alarm_set_time(&s_time);
  4. 重载系统闹钟,此函数必须在每次设置系统时间后调用。代码如下:
    app_alarm_reload();
  5. 删除当前所有闹钟。代码如下:
    app_alarm_del_all();
  6. 添加系统闹钟。代码如下:
    app_alarm_add(&s_alarm, alarm_0);

测试验证

  1. 用GProgrammer下载alarm.bin至开发板。
  2. 将开发板串口连接至PC端,打开并配置GRUart。
  3. 在GRUart的Receive Data窗口中每秒打印一次当前的时间信息。

扫描关注

打开微信,使用“扫一扫”即可关注。