Demo
如果要获取 RTC 时间,调用 RT-Thread 的标准时间接口即可,如: - time() - clock_gettime() -
gettimeofday()。本 Demo 是 test_alarm
的源码(bsp/examples/test-alarm/test_alarm.c),设置一个 oneshot 类型的
alarm:
static void test_alarm_callback(rt_alarm_t alarm, time_t timestamp) { pr_info("Test alarm callback function.\n"); } static void cmd_test_alarm(int argc, char **argv) { struct rt_alarm_setup setup; struct rt_alarm *alarm = RT_NULL; u32 timeout = 0; time_t now; struct tm p_tm; if (argc != 2) { pr_err("Invalid parameter\n"); return; } sscanf((char *)argv[1], "%u", &timeout); now = time(NULL) + timeout; gmtime_r(&now, &p_tm); setup.wktime = p_tm; alarm = rt_alarm_create(test_alarm_callback, &setup); if (alarm) { alarm->flag = RT_ALARM_ONESHOT; rt_alarm_start(alarm); } }