OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3284|回复: 0

用UCOSIII实现原来不用系统的程序

[复制链接]

62

主题

126

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
280
金钱
280
注册时间
2015-6-11
在线时间
56 小时
发表于 2022-12-13 09:56:54 | 显示全部楼层 |阅读模式
10金钱
有触发事件1/2/3有需要回复的通过串口发送给指定下位机的指令A/B/C/D

要求:
平时不间断一次执行D,因为是通过串口中断接收和发送,所以不会影响其他代码的执行

当事件1/2/3发生时,分别执行指令A/B/C(优先级A>B>C>D),为了确保下位机收到执行,需要执行多次(10次,400ms一次),直到10次执行完毕或下位机回复为止(正常只需执行一次即可收到回复,取消执行)

若事件1/2/3连续发生时,也需保证执行D的执行,每执行2次指令A/B/C,需插入执行一次指令D

遇到的问题:
之前没有用UCOSIII系统的时候,是把它放到一个4ms的扫描任务中,可以很方便的解决,现在换成UCOS系统,如果放到一个4ms的定时任务中,或者整体放到一个任务中,并且结尾延迟4ms切换任务,也可以解决,但这样就跟我原来没有什么区别,我用系统就没有意义了。

目标:
我想用一个事件标志组来代替原来为指令A/B/C/D定义的执行次数变量,试了几次方法都不能实现,而且代码变得很多,没有之前干净了。请大神帮忙







正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-4-30 07:29

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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