mx66 发表于 2020-1-11 18:40:33

使用osDelayUntil()无法任务切换

使用cubeMX生成的FreeRTOS工程,由于程序中要使用PID算法,所以要精准控制云台、底盘任务的运行周期,从网上看到的教程说使用osDelayUntil()这个函数,于是我用了。
然后!!
我的工程一共有6个任务,其中云台底盘的优先级是最高的,就是cubemx里选的最高的,并且用osDelayUntil()这个函数控制任务周期,用了之后发现只有这两个任务在跑,其他的都死了,后续测试中发现
如果我都用这个函数,只有优先级最高的两个任务(而且他俩必须同优先级,也就是说优先级最高的)才能运行,现在云台很不稳定,就是PID周期控制的不严格,希望大佬们帮帮,大佬们要是需要我的代码
就私聊我,代码没办法公开。。谢谢谢谢

butterflyspring 发表于 2020-2-10 16:48:17

依据您的描述,是否这两个高优先级任务占用了所有CPU时间,即cpu利用率接近100%了。
可以先运行2个任务,一个高优先级任务,一个低优先级任务,延迟时间等参数是否合理等等。:)
页: [1]
查看完整版本: 使用osDelayUntil()无法任务切换