一、基本介绍
定时器:从指定的时刻开始,经过一个指定时间,然后触发一个超时事件,用户可以自定义定时器的周期。
硬件定时器:芯片本身自带的定时器模块,硬件定时器的精度高,定时到可以触发一次中断,用户在中断服务函数中处理信息。
软件定时器:指具有定时功能的软件,可以设置定时周期,当指定时间到达后要调用回调函数(也称超时函数),用户在回调函数中处理信息。
软件定时器的优缺点,
优点:
1.硬件定时器数量有限,而而软件定时器理论上只需要有足够内存,就可以创建多个;
2.使用简单,成本低。
缺点:
1.精度不高。
FreeRTOS软件定时器是可裁剪可配置的,如果要使用软件定时器。需要将FreeRTOSConfig.h中的configUSE_TIMERS配置为1。并且支持设置为单次或周期定时器。
二、软件定时器函数介绍
更多、更详细的函数使用和介绍请参考官网:软件定时器 - FreeRTOS™待定https://freertos.org/zh-cn-cmn-s/Documentation/02-Kernel/04-API-references/11-Software-timers/00-FreeRTOS-Software-Timer-API-Functions
每个命令都是在想定时器队列发送一个命令,并有软件定时器服务任务进行处理。
三、问题与总结
1.软件定时器的超时回调函数是由软件定时器服务任务调用,其回调函数本身不是任务。软件定时器服务任务实在开启调度器时自动生成。
2.多个软件定时器由同一个软件定时器服务任务进行服务的,所以在定时器回调函数中不可以进入阻塞状态。