CN / EN
文档反馈
感谢关注汇顶文档,期待您的宝贵建议!
感谢您的反馈,祝您愉快!
无匹配项 共计114个匹配页面

示例代码

RTC

示例工程通过RTC实现闹钟功能,工程目录:SDK_Folder\projects\peripheral\rtc\app_rtc

示例工程流程图

示例工程首先初始化RTC并注册回调函数,设置RTC时间,RTC开始计时,并通过接口获取当前的时间并打印,验证RTC已经正常计时。其次,设置闹钟,并启动RTC TICK中断,每10tick产生一次中断,每1000 tick打印日志,与此同时当到达闹钟定时时间8:01时,产生闹钟定时中断,并输出相应日志。

图 14 RTC示例工程流程

初始化参数

  1. 初始日期设置:2019年5月20日8点0分0秒
        app_rtc_time_t time;
    
        time.year = 19;
        time.mon  = 5;
        time.date = 20;
        time.hour = 8;
        time.min  = 0;
        time.sec  = 0;
        time.week = 0;
        app_rtc_init_time(&time);
    
  2. 设置alarm为每周的上午8点01分。此函数必须在每次设置系统时间后重新调用。代码如下:

        app_rtc_alarm_t alarm;
    
        alarm.alarm_sel = CALENDAR_ALARM_SEL_WEEKDAY;
        alarm.alarm_date_week_mask = 0xFF;
        alarm.hour = 8;
        alarm.min  = 1;
    
    • alarm_sel:选择按周报警还是按月报警,此处选择CALENDAR_ALARM_SEL_WEEKDAY(按周)。
    • alarm_date_week_mask:每周具体哪天或者几天报警,0xFF表示每周每一天都报警。

重要函数

  • 初始化RTC并注册回调函数
    app_rtc_init(app_rtc_evt_handler)
  • 设置初始化时间

    app_rtc_init_time(&time)
  • 获取当前时间

    app_rtc_get_time(&time)
  • 设置闹钟

    app_rtc_setup_alarm(&alarm)
  • 设置RTC TICK中断

    app_rtc_setup_tick(10)

    每10 tick产生一次中断

测试验证

连接开发板到PC端,打开串口助手,连接串口,查看串口日志。App current time为获取当前时间并打印的日志,Tick alarm为RTC TICK中断打印的日志,设置闹钟8:01 am,在8:01 am时中断打印Date alarm。

每秒串口打印当前时间,并设置date alarm为8:01am:

[18:02:59.277] App current time: 05.20.19 Mon 08:00:01

[18:03:00.281] App current time: 05.20.19 Mon 08:00:02

[18:03:01.286] App current time: 05.20.19 Mon 08:00:03

[18:03:02.290] App current time: 05.20.19 Mon 08:00:04

[18:03:03.294] App current time: 05.20.19 Mon 08:00:05
Set an date alarm every day at 8.01 am.

设置tick定时,每计数1000 tick,打印一次当前时间:

Set an tick alarm every 10 ms.

[18:03:16.362] Tick alarm, 05.20.19 Mon 08:00:18, 100.

[18:03:17.366] Tick alarm, 05.20.19 Mon 08:00:19, 200.

[18:03:18.368] Tick alarm, 05.20.19 Mon 08:00:20, 300.

[18:03:19.373] Tick alarm, 05.20.19 Mon 08:00:21, 400.

定时闹钟时间到:

[18:03:57.519] Tick alarm, 05.20.19 Mon 08:00:59, 4200.

[18:03:58.331] Date alarm.

[18:03:58.503] Tick alarm, 05.20.19 Mon 08:01:00, 4300.

扫描关注

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