beeman 发表于 2021-6-11 10:58:28

FreeRTOS任务和中断回调函数运行问题。

各位大佬,我有如下一个需求,但是任务会不执行,请各位指点。
所用的硬件平台为STM32H750VB


用外部中断+定时器中断作为采集数据,采集的频率为1.xx ms,我是在Timer的回调函数中进行ADC的DMA数据的读取,求平均值,放入buffer,并且在buffer满(大约200ms满一次)的时候,更新flag1;

任务1在检测到flag1之后,进行计算,得出结果,更新flag2;

任务2检测到flag2之后,把计算结果通过rs485发出去。

现在的问题是,
1, 在上述情况下,任务1,2不运行;
2, 如果把任务1中的osdelay去掉,任务1运行,任务2不运行;

各位有什么好的建议吗?谢谢!

eric2013 发表于 2021-6-11 16:47:57

用了rtos,建议把RTOS的信号量用上,直接通知任务1即可。另外任务2就不要创建了,建议都在任务1里面完成

beeman 发表于 2021-6-11 17:32:19

eric2013 发表于 2021-6-11 16:47
用了rtos,建议把RTOS的信号量用上,直接通知任务1即可。另外任务2就不要创建了,建议都在任务1里面完成

谢谢版主回复,已经这样试过了,在task1中加了485发送以及I2C读取一个传感器,但是计算几次值之后就停住了,打印不出数据。

beeman 发表于 2021-6-11 17:36:09

beeman 发表于 2021-6-11 17:32
谢谢版主回复,已经这样试过了,在task1中加了485发送以及I2C读取一个传感器,但是计算几次值之后就停住 ...

也尝试过把采集数据的时间间隔加大到一秒,但是问题还是存在

beeman 发表于 2021-6-11 18:09:15

新手,贴下代码,请版主以及各位高手帮忙看看,谢谢。
页: [1]
查看完整版本: FreeRTOS任务和中断回调函数运行问题。