找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 732|回复: 5
收起左侧

问下大伙RTOS程序逻辑能这么写吗?

[复制链接]
ID:885416 发表于 2022-3-17 20:16 来自手机 | 显示全部楼层 |阅读模式
比如一个pid操作,
在rtos里,任务a负责采集,采集够了发给采集消息队列,让后继续采集,
任务b负责滤波,一直等待采集消息队列穿数据过来,有数据就处理,没数据就阻塞,当有数据来处理完了,用只有一个容量的滤波消息队列,告诉pid任务滤波数据完成了,

任务c就是pid任务,只有一个容量的滤波消息队列告诉他滤波完成数据来了,就开始执行pid计算,控制pid输出,

这里我的疑惑就是首先第一点是这个任务abc流程有问题吗,第二点是如果滤波完成的数据,还要涉及给其他数据上传任务,需要把滤波后的数据上传,我再加一个只有一个容量的消息队列,允许覆盖的那种,让那个上传任务读这个队列也是没问题的吧。
回复

使用道具 举报

ID:301191 发表于 2022-3-17 23:22 | 显示全部楼层
顶一下
回复

使用道具 举报

ID:883242 发表于 2022-3-18 00:36 | 显示全部楼层
没人回答是因为你自己都规划好了那就试试看呗。怎么写更好跟你的资源有关系,比如任务a要把所有数据都采集完才送给任务b,这个消息队列是挺浪费空间的,但是如果你ram足够这么做也无可非议。你什么都不说,就讲这个框架,别人无法判别。
回复

使用道具 举报

ID:885416 发表于 2022-3-18 02:14 来自手机 | 显示全部楼层
Hephaestus 发表于 2022-3-18 00:36
没人回答是因为你自己都规划好了那就试试看呗。怎么写更好跟你的资源有关系,比如任务a要把所有数据都采集 ...

看情况吧,其实采集可以弄个大内存,分成小块,每次采集一些到一个小块,把这个小块的地址通过消息队列传出,让后采集任务采集往下一个小块采集,这样消息队列只传输指针,让后采集任务复用内存。我是这么想的,但是没试过,应该可以的。
回复

使用道具 举报

ID:885416 发表于 2022-3-18 15:04 来自手机 | 显示全部楼层
来个大佬
回复

使用道具 举报

ID:301191 发表于 2022-3-24 01:53 | 显示全部楼层
顶一下
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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