修改定时器 在申请定时器的时候设置的定时器周期, 可以通过函数 xTimerChangePeriod 修改, 如下示例 :
- void vAFunction_2( TimerHandle_t xTimer )
- {
- // 判断定时器是否处于运行状态
- if( xTimerIsTimerActive( xTimer ) != pdFALSE )
- {
- /* xTimer is active, do something. */
- }
- else
- {
- // 处于这个状态的定时器, 可能由于 :
- // 1 定时器 create 后没有start
- // 2 一次性定时器执行溢出后
-
- // 修改定时器周期
- if( xTimerChangePeriod( xTimer,
- /*修改定时周期*/
- 500 / portTICK_PERIOD_MS,
- /*允许阻塞最大时间 100 ticks*/
- 100 ) == pdPASS )
- {
- // update fail
- // 阻塞 100 tick 仍然无法发送命令
-
- // 删除定时器 释放对应内存!
- xTimerDelete( xTimer );
- }
- else
- {
- // 定时器配置更新成功, 并已经启动 !!
- }
- }
- }
如上, 该函数会修改定时器并使定时器 开始运行!!!
|