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

图片说明

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

  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. 在多任务处理时一般用这种循环任务来分时切换