This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] RM48L940:RM48上的 vTaskDelay()节拍周期

Guru**** 2386600 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/723502/rm48l940-vtaskdelay-tick-period-on-rm48

器件型号:RM48L940

我遇到了一个问题,vTaskDelay()似乎没有按预期运行。

当我调用 vTaskDelay (1)来使 LED 闪烁时、它以大约200ms 的周期闪烁(大约通过观察闪烁速率)。 当我使用 vTaskDelay (2)或除1以外的任何内容时、LED 永远保持亮起(我可以告诉代码仍在执行)。 例如:

vTaskDelay (2) --> 观看了几分钟后,这段时间看起来永远

vTaskDelay (10000/portTIK_PERIOD_MS)---- >周期约为8s

vTaskDelay (1000/portTIK_PERIOD_MS)---- >观看几分钟后、周期看起来会永远

在 FreeRtosConfig.h 中、我有:

#define CONFIGCPU_CLOCK _Hz    (( unsigned portLONG ) 100000000 )//计时器时钟。 *

是否缺少任何配置来设置正确的节拍率?

PS:我几天前发布了此问题、但我找不到我的帖子 、并且没有得到确认或回复、因此我要重新发布。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    很抱歉稍后重放。 我是商务旅行的人、上网的机会有限。

    您的项目中定义了什么 portTIK_PERIOD_MS? 通常、在 FreeRTOS 中、vTaskDelay (1)将延迟1ms。
    如果 portTIK_PERIOD_MS 定义为1、则 vTaskDelay (10000/portTIK_PERIOD_MS)将延迟10秒、而 vTaskDelay (1000/portTIK_PERIOD_MS)将只延迟1秒。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的回复。

    portTICK_PERIOD_MS 定义如下:

    #define portTIKK_PERIOD_MS   ((TickType_t) 1000 / CONFIGTIK_RATE_Hz)

    我将其更改为1、如下所示

    #define portTIK_PERIOD_MS   (TickType_t) 1.

    并且行为上没有差异。

    vTaskDelay (1)->根据闪烁速率判断、延迟约250ms

    vTaskDelay (2)-->延迟约35秒

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我的问题现已解决。 调试探针干扰了执行时间、因此延迟不稳定