硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2005|回复: 4
收起左侧

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

[复制链接]

1

主题

4

回帖

7

积分

新手上路

积分
7
发表于 2021-6-11 10:58:28 | 显示全部楼层 |阅读模式
各位大佬,我有如下一个需求,但是任务会不执行,请各位指点。
所用的硬件平台为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不运行;

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

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106717
QQ
发表于 2021-6-11 16:47:57 | 显示全部楼层
用了rtos,建议把RTOS的信号量用上,直接通知任务1即可。另外任务2就不要创建了,建议都在任务1里面完成
回复

使用道具 举报

1

主题

4

回帖

7

积分

新手上路

积分
7
 楼主| 发表于 2021-6-11 17:32:19 | 显示全部楼层
eric2013 发表于 2021-6-11 16:47
用了rtos,建议把RTOS的信号量用上,直接通知任务1即可。另外任务2就不要创建了,建议都在任务1里面完成

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

使用道具 举报

1

主题

4

回帖

7

积分

新手上路

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

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

使用道具 举报

1

主题

4

回帖

7

积分

新手上路

积分
7
 楼主| 发表于 2021-6-11 18:09:15 | 显示全部楼层
新手,贴下代码,请版主以及各位高手帮忙看看,谢谢。
main task.png timer.png
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-30 15:46 , Processed in 0.166761 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表