使用 freeRtos 触发任务的可变延迟

Posted

技术标签:

【中文标题】使用 freeRtos 触发任务的可变延迟【英文标题】:Variable delay triggering of a task with freeRtos 【发布时间】:2017-11-08 17:26:01 【问题描述】:

喂,

在我基于 FreeRTOS 的应用程序中,我收到来自 EMAC 的消息,

有效载荷包含一个整数,表示以毫秒为单位的时间,

如果有效载荷为 5,则表示我必须在 5 毫秒后做某事,

如果有效载荷为 10,则意味着我必须在 10 毫秒后做某事,以此类推,

我的问题是关于在 TMDX570LC43HDK 上使用 freeRTOS 实现此变量触发任务的最佳方法?

安东尼奥

【问题讨论】:

【参考方案1】:

您需要多精确的时间?您可以使用 FreeRTOS 计时器来触发任务,但例如,根据 rtos 滴答声,5ms 可能介于 4ms 到 5ms 之间。

如果您需要精确的时间,请使用硬件计时器来触发可以触发任务的中断。

对于任何一种方法,您都可以使用任务通知。

【讨论】:

以上是关于使用 freeRtos 触发任务的可变延迟的主要内容,如果未能解决你的问题,请参考以下文章

STM32 FreeRTOS - UART延迟中断问题

FreeRTOS入门(04):中断内存追踪与调试

FreeRTOS Posix原理

LUA解析器和系统 FREERTOS 兼容吗

Free RTOS 中的队列集使用情况

延迟任务的实现总结