freeRTOS如何实现周期任务

sun2006_20 2018-06-11 03:02:54
FreeRTOS中任务如何实现不同任务,周期调用。比如。系统周期1ms。如果想让TASK_A 周期5ms TASK_B 10ms TASK_C 20ms 如何实现。
1.用TaskDelay()这样的系统函数,科学吗?
...全文
2052 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Votangroom 2018-07-02
  • 打赏
  • 举报
回复
不考虑任务自身运行时间(任务运行时间一般都挺短的吧,微秒级的吧),我觉得可以用TaskDelay()
dceacho 2018-06-12
  • 打赏
  • 举报
回复
TaskDelay()就够了, TaskDelay(5-2); TaskDelay(10-2); TaskDelay(20-2);
sun2006_20 2018-06-11
  • 打赏
  • 举报
回复
5ms执行一次。 任务体 本身是一个 循环。会1ms调用一次,这是系统操作系统实现的。 for(;;) { // } 想 在这个函数体内部 搞一个 5ms 或者10ms 或者20ms的 代码 如何控制。
dceacho 2018-06-11
  • 打赏
  • 举报
回复
我是不是理解错了,你是说A 5MS执行一次而不是一次执行5MS?
dceacho 2018-06-11
  • 打赏
  • 举报
回复
我记得是有自定义时间片功能的

1.如果任务里不是耗时操作的话,是科学的
如果是耗时操作,而且任务周期精度要求高,得考虑当3个任务都READY时
A耗时5MS,到B时,B已经在原周期上延时了5MS

27,375

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧