• 回复
  • 收藏
  • 点赞
  • 分享
  • 发新帖

【英飞凌无人机套件】源代码之任务调度

英飞凌与上位机Cleanflight配置软件对应的下位机软件是XMC_Cleanflight-master。采用了轮询任务调度的方式。其主要核心是cfTask_t型的taskQueueArray数组。其内部记录着各种各样的我们需要的子程序。如下图所示。



然后利于一个FOR循环进行遍历查询。如下图所示。



其核心思想是:当前时间是否到达或超过当前任务的下一次执行时间点,如果超过,则跳出FOR循环。执行当前的任务。


大家是否明白了呢,欢迎留言,我在给大家看源代码分析!





更多无人机方案请参考网站:http://www.dianyuan.com/infineon

全部回复(2)
正序查看
倒序查看
2018-10-04 22:55
虽然我不懂你说的什么,不过看起来是很厉害的样子
0
回复
雅兄
LV.5
3
2018-10-06 13:28

主程序main()就调用两个函数,一个是初始化,一个是死循环(任务调度)。还有一个是空的回调函数,见下图。

其中taskQueueArray数组存的任务函数在cfTasks已经定义了一部分,其中就有一个参数是任务运行的间隔(.desiredPeriod)。

0
回复