一、简介
软件定时器是指具有定时功能的软件,FreeRTOS 提供的软件定时器允许在创建前设置一个
软件定时器定时超时时间,在软件定时器成功创建并启动后,软件定时器开始定时,当软件定
时器的定时时间达到或超过先前设置好的软件定时器定时器超时时间时,软件定时器就处于超
时状态,此时软件定时器就会调用相应的回调函数,一般这个回调函数的处理的事务就是需要
周期处理的事务。
FreeRTOS 提供的软件定时器还能够根据需要设置成单次定时器和周期定时器。当单次定时
器定时超时后,不会自动启动下一个周期的定时,而周期定时器在定时超时后,会自动地启动
下一个周期的定时。
FreeRTOS 提供的软件定时器功能,属于 FreeRTOS 的中可裁剪可配置的功能,如果要使能
软件定时器功能,那需要在 FreeRTOSConfig.h 文件中将 configUSE_TIMERS 配置项配置成 1。
要注意的是,软件定时器的超时回调函数是由软件定时器服务任务调用的,软件定定时器
的超时回调函数本身不是任务,因此不能在该回调函数中使用可能会导致任务阻塞的 API 函数,例如 vTaskDelay()、vTaskDelayUntil()和一些会到时任务阻塞的等到事件函数,这些函数将会导致软件定时器服务任务阻塞,这是不可以出现的。
<