OpenEdv-开源电子网

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

几个报警同时发生,怎么判断最先发生的那个?

[复制链接]

8

主题

206

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1010
金钱
1010
注册时间
2016-4-6
在线时间
234 小时
发表于 2017-4-12 18:33:55 | 显示全部楼层 |阅读模式
10金钱
求助: 各位兄弟姐妹们,现在是这样的,这里有一个系统,同时发生了几个报警,如:低压报警,温度报警,水流量报警等,一起发生了。我应该如何判断最先发生的那个报警?
现在,代码是,有一个变量U32 Aralm 这个变量的每一位是用来保存报警信号的,如低压报警发生,bit0 = 1。 温度报警 bit1 = 1.水流量报警,bit2 = 1.等等依次下去,有10多个报警标志位。
我在LCD中显示的时候,就通过查这个变量Aralm的哪一个位 置一了 就显示那个报警,可是,问题来了,如果很多报警都发生了,我应该怎么判断最先发生的那个,然后我在LCD中在显示出来。。

最佳答案

查看完整内容[请看2#楼]

每个信号触发时,配一个时间给他.不是就完了吗/什么时候都知道哪个信号先触发. 自然明白了.
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

50

主题

1805

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6662
金钱
6662
注册时间
2016-5-29
在线时间
910 小时
发表于 2017-4-12 18:33:56 | 显示全部楼层
每个信号触发时,配一个时间给他.不是就完了吗/什么时候都知道哪个信号先触发. 自然明白了.
回复

使用道具 举报

4

主题

211

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2600
金钱
2600
注册时间
2016-7-6
在线时间
546 小时
发表于 2017-4-12 18:38:19 | 显示全部楼层
设置一个标志,每个警报来的时候,分别置为不同的数(比如:01,02,03),你显示的时候先判断这标志,就可以知道是哪个先来的。
把复杂的事,做简单!
回复

使用道具 举报

4

主题

211

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2600
金钱
2600
注册时间
2016-7-6
在线时间
546 小时
发表于 2017-4-12 18:40:34 | 显示全部楼层
月无缺 发表于 2017-4-12 18:38
设置一个标志,每个警报来的时候,分别置为不同的数(比如:01,02,03),你显示的时候先判断这标志,就可 ...

初始化标志为零,如果标志位不为零的时候,就不再允许改变它的值。
把复杂的事,做简单!
回复

使用道具 举报

69

主题

978

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3776
金钱
3776
注册时间
2015-4-26
在线时间
766 小时
发表于 2017-4-12 21:13:01 | 显示全部楼层
2个报警发生间隔是多少,你读取的时间间隔比这个要小。这样每次读取若发生报警则有且仅有一个置位
我有故事,你有酒吗
回复

使用道具 举报

50

主题

1805

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6662
金钱
6662
注册时间
2016-5-29
在线时间
910 小时
发表于 2017-4-12 21:13:14 | 显示全部楼层
本帖最后由 操作系统 于 2017-4-12 21:18 编辑

明明说是同时报警,哪里有先后之分呢.如果是有先后之分,怎么会是同时有报警呢.好矛盾的问题.
回复

使用道具 举报

8

主题

206

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1010
金钱
1010
注册时间
2016-4-6
在线时间
234 小时
 楼主| 发表于 2017-4-12 22:01:04 | 显示全部楼层
月无缺 发表于 2017-4-12 18:40
初始化标志为零,如果标志位不为零的时候,就不再允许改变它的值。

恩,好的,我试试,貌似有点思路。。万分感谢
回复

使用道具 举报

8

主题

206

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1010
金钱
1010
注册时间
2016-4-6
在线时间
234 小时
 楼主| 发表于 2017-4-13 08:34:43 | 显示全部楼层
操作系统 发表于 2017-4-12 21:13
明明说是同时报警,哪里有先后之分呢.如果是有先后之分,怎么会是同时有报警呢.好矛盾的问题.

额,兄弟。首先感谢你的回答,可能是我表达的不太准确,抱歉,我的意思是,假如有一个温度报警发生了,而发生报警后切段了电源,这个时候就会检测到低压报警,所以就会产生2个报警。可是,报警的时候只是这个标志位中的某一个位BIT 置1了。显示的时候却不知道那个报警先发生的。所以在这里向各位大神指点。。谢谢!
回复

使用道具 举报

8

主题

206

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1010
金钱
1010
注册时间
2016-4-6
在线时间
234 小时
 楼主| 发表于 2017-4-13 08:35:53 | 显示全部楼层
来俩不甜的 发表于 2017-4-12 21:13
2个报警发生间隔是多少,你读取的时间间隔比这个要小。这样每次读取若发生报警则有且仅有一个置位

我2个报警的间隔好小,可能MS级别,
回复

使用道具 举报

69

主题

978

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3776
金钱
3776
注册时间
2015-4-26
在线时间
766 小时
发表于 2017-4-13 08:56:20 | 显示全部楼层
xiedonghui258 发表于 2017-4-13 08:35
我2个报警的间隔好小,可能MS级别,

要么优化程序,要么在定时器中断里查询(查询个引脚状态完全可以在中断里执行)
我有故事,你有酒吗
回复

使用道具 举报

50

主题

1805

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6662
金钱
6662
注册时间
2016-5-29
在线时间
910 小时
发表于 2017-4-13 12:10:39 | 显示全部楼层
xiedonghui258 发表于 2017-4-13 08:35
我2个报警的间隔好小,可能MS级别,

MS级别不算什么,玩过正交编码器吗?那发过来的信号才叫快呢.还不是要去分析.所以一开始我就说了,是同时的发生的.哪里有先后,有了先后怎么可能同时发生呢.看来还是你的程序不够快呀
回复

使用道具 举报

24

主题

695

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1666
金钱
1666
注册时间
2016-4-29
在线时间
266 小时
发表于 2017-4-13 12:25:43 | 显示全部楼层
根据实际使用中的场景来定义,这是产品设计思路的问题,不是程序问题
回复

使用道具 举报

8

主题

206

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1010
金钱
1010
注册时间
2016-4-6
在线时间
234 小时
 楼主| 发表于 2017-4-13 13:31:47 | 显示全部楼层
d1z1y2 发表于 2017-4-13 12:25
根据实际使用中的场景来定义,这是产品设计思路的问题,不是程序问题

兄弟,这个怎么理解?能说的详细点吗?万分感谢。
回复

使用道具 举报

8

主题

206

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1010
金钱
1010
注册时间
2016-4-6
在线时间
234 小时
 楼主| 发表于 2017-4-14 08:56:12 | 显示全部楼层
操作系统 发表于 2017-4-13 19:32
每个信号触发时,配一个时间给他.不是就完了吗/什么时候都知道哪个信号先触发. 自然明白了.

兄弟,感谢你的回答。你说的我好像理解了一点点,跑裸机的话能分配时间吗?
回复

使用道具 举报

50

主题

1805

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6662
金钱
6662
注册时间
2016-5-29
在线时间
910 小时
发表于 2017-4-14 20:30:03 | 显示全部楼层
不是分配时间,是标记事件是什么时候触发的.你要有一个以毫秒为基准的定时器.可以说是SYSTICK定时器.里面跑一个变量++,可以做到每毫秒都不相同.当事件发生时,读取这个变量保存下来.这样子无论是什么事件,都可以做到毫秒级的顺序.
回复

使用道具 举报

24

主题

695

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1666
金钱
1666
注册时间
2016-4-29
在线时间
266 小时
发表于 2017-4-14 21:49:26 | 显示全部楼层
其实这个问题有点像中断优先级的问题,比如按发生的时间先后,还可以按报警事件的紧急性和逻辑性,或者将所有报警全显示出来,或者循环显示所有报警,等等……,这些随你自己定义,根据你的产品特性,从用户角度考虑,人性化和安全方面考虑,反正你自己最了解自己的设计意图
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-9-23 12:56

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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