FreeRTOS慢速量棒

时间:2016-02-02 06:47:57

标签: timer embedded stm32 freertos

我遇到了FreeRTOS的问题,似乎systick()速率是预期速率的1/2。所有定时器或任务延迟功能大约需要2倍的时间。这在使用STM32F100处理器的版本8.2.0和8.2.3中得到了验证。

还有另一篇帖子looks very similar。该开发人员正在使用MSP430并声称当预期1000Hz滴答率时,滴答率为400Hz。

RCC寄存器配置似乎是正确的。如果我创建一个非-FreeRTOS项目,其中systick是正确的,它具有与FreeRTOS版本相同的RCC配置。

建议?

1 个答案:

答案 0 :(得分:2)

当我读到:

  

我创建了一个非常简单的任务,延迟4秒并报告   实际经过的刻度数。刻度是正确的但实际上是正确的   延迟大约是8秒。

当我读到这个时,我的想法是,如果延迟在刻度数上是正确的,但时间不同,那么这只是CPU时钟以与您认为的频率不同的频率运行的情况。也许configCPU_CLOCK_HZ是错误的。但是,那么你写:

#undef OS_USE_TRACE_SEMIHOSTING
#define OS_USE_TRACE_ITM
你提到半主机。你在使用半主机吗?如果是这样,不要这样做,它会弄乱你的时间,因为它会在输出到主机时停止CPU - 这可能是你看到的问题。