一文读懂FreeRTOS软件定时器
软件定时器
定时器概述
软件定时器(定时器)用于在将来一个固定的时间点执行一个功能函数,该功能函数即是定时器的回调函数,定时器开始到回调函数执行的时间即是定时器的周期。
回调函数要点
定时器回到函数运行在定时服务任务的上下文中,因此回调函数绝不可以被阻塞。例如,定时器的回调函数不能调用vTaskDelay(),vTaskDelayUntil(),或者特别是访问非零阻塞时间的队列和信号量;
定时器服务任务
计时器功能是可选的,而不是FreeRTOS内核的一部分。 相反,它由计时器服务(或守护程序)任务提供。FreeRTOS提供了一组相关的API函数,许多这种函数使用了标准的FreeRTOS队列向定时器服务任务发送命令。如下图所示:
定时任务配置
- configUSE_TIMERS: 是否启动定时器;
- configTIMER_TASK_PRIORITY:定时服务任务的优先级;
- configTIMER_QUEU