关于stm32系统定时任务的问题

图片说明

在用stm32做一个飞控程序时。需要用到上面这种系统循环定时任务,有一个问题:
在System_Task_Loop函数里面,有1ms 、2ms、5ms的循环任务,但是他的这些定时是怎么得到的?
是随便选取的还是计算得到的?
就是他怎么知道在 1ms的时候做这个任务,在2ms的时候做另一个,而且没有3ms 的定时任务?
还有就是什么情况下需要使用这种系统循环任务?
谢谢。

1个回答

  1. 这个System_Task_Loop函数需要不停的调用,一般在主函数里面循环调用或者在定时器里面调用
  2. Task_Time.Cnt_1Ms和,Task_Time.Cnt_2Ms, Task_Time.Cnt_5Ms, Task_Time.Cnt_10Ms这4个变量一般在系统滴答时钟里面1ms增加1
  3. 在多任务处理时一般用这种循环任务来分时切换
weixin_43768330
烩面刀削面 回复Andrew_Qian: 为什么不能直接放在主循环中,不停循环,而是要隔一段时间呢。不停循环不是实时性更好吗
大约一年之前 回复
m0_37655357
Andrew_Qian 恩,我明白了,但是我想知道他是如何确定在Task_5MS()、Task_1MS()函数里面做什么 的。就是为什么在Task_1MS()需要做这个
接近 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐