找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1798|回复: 5
打印 上一主题 下一主题
收起左侧

UC/OS III不能等待多个事件标志组或互斥型信号量

[复制链接]
跳转到指定楼层
楼主
ID:243193 发表于 2017-12-5 09:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近刚学习嵌入式操作系统UC/OS III ,在这里,我有几个疑问,恳请各位帮忙解答下。UC/OS III可以同时等待多个信号量和消息队列,但不能等待多个事件标志组或互斥型信号量。

疑惑在后句话,但不能等待多个事件标志组或互斥型信号量。它的意思是不是说,在实际使用的时候,如果我要使用标志组
就只能创建一个,并且只能等待一个事件的发生。假如在系统中,温度过高需要一个事件标志,温度过低也需要一个事件标志。
那是不是就不能使用事件标志了,因为只能等待一个事件的发生,而我这个例子是需要同时等待两个事件的。


望解答,不胜感激!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:258164 发表于 2017-12-6 16:11 | 只看该作者
楼主你理解错误,理论上可以创建任意个事件标志,任务和事件标志存在或和与的关系。或逻辑就是事件标志组组中任一事件发生任务就绪;与逻辑是所有的事件发生任务才就绪
回复

使用道具 举报

板凳
ID:258226 发表于 2017-12-6 16:49 | 只看该作者
本帖最后由 安心1x2 于 2017-12-6 18:04 编辑

最近我也在学UCOS3,你的理解有点问题,事件标志是一组事件好像确实不能一次等待多个事件标志组,但我认为是没必要的,你所说的温度过高和过低分别需要一个事件标志组完全不需要,温度过高和过低应到作为一个消息(消息内容是温度过高或者过低的信息)给你相应的处理任务,或者把温度过高或者过低视作一个事件标志组,过高过低都分别post一个事件,等待的时候两个都加上op选any(即或逻辑)就好,或者设置两个信号量,用等待多个内核对象的方法就行。
回复

使用道具 举报

地板
ID:243193 发表于 2017-12-8 08:52 | 只看该作者
安心1x2 发表于 2017-12-6 16:49
最近我也在学UCOS3,你的理解有点问题,事件标志组是一组事件好像确实不能一次等待多个事件标志组,但我认 ...

首先非常的感谢你,我的想法是单独的就只使用标志组,你刚才有说把高温和低温作为一个事件来等待,但是当事件来临后,怎么知道是高温还是低温了。
回复

使用道具 举报

5#
ID:243193 发表于 2017-12-8 08:54 | 只看该作者
HelloPan111 发表于 2017-12-6 16:11
楼主你理解错误,理论上可以创建任意个事件标志,任务和事件标志存在或和与的关系。或逻辑就是事件标志组组 ...

谢谢回答啊,但是正确的理解是什么啊,我刚学习,请你明示下
回复

使用道具 举报

6#
ID:259059 发表于 2017-12-8 14:10 | 只看该作者
用flag,温度低一个位,温度高一个位,挂起时设置为任何一个被设置都可以触发
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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