有时候,我需要立即停止FreeRTOS中的软件计时器和相应的回调函数,但是我发现有时需要大约2个运行周期才能停止计时器。
if (pdPASS != xTimerStop(my_timer, OSTIMER_WAIT_FOR_QUEUE))
{
//error
}
作为修复,我添加了一个全局标志,以便在我需要停止该计时器时进行设置,然后在计时器回调函数中检查标志的值。 我知道这个问题是因为FreeRTOS将stop命令发送到内核队列,并且它有一定的延迟(根据系统状态),直到计时器真正获得命令并停止为止,但是还有什么比在代码中添加标志更好的方法吗?
谢谢