打印
[STC单片机]

关于开关去抖动的问题

[复制链接]
2509|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hel_zh|  楼主 | 2017-1-5 16:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我只需要知道开关是否按下,而不判断按下的次数(也就是说连击不连击,我不关心),
在上述情况下,好像不用考虑去抖动吧。

我写的测试程序,上位机每2ms发送一次命令,单片机将开关状态发送给上位机。
实际测试时发现,去不去抖动,上位机都能检测到开关按下。
开关按下的时候发送的是0,松开发送1
没有在一堆0中发现有1出现呀,不知道怎么回事

相关帖子

沙发
刺客_阿瑞| | 2017-1-6 12:43 | 只看该作者
开挂都松开了,单片机怎么停止工作了,怎么**开关状态,你说的到底是开关还是按键,这个需要说清楚点。

使用特权

评论回复
板凳
hel_zh|  楼主 | 2017-1-6 14:36 | 只看该作者
刺客_阿瑞 发表于 2017-1-6 12:43
开挂都松开了,单片机怎么停止工作了,怎么**开关状态,你说的到底是开关还是按键,这个需要说清楚点。 ...

是开关,自复位的那种

使用特权

评论回复
地板
刺客_阿瑞| | 2017-1-6 15:29 | 只看该作者
hel_zh 发表于 2017-1-6 14:36
是开关,自复位的那种

那不行啊,你想想看,开关断开的时候单片机都没有供电,也就没有工作,他怎么检查 ?  你上位机发送再多的信息也是徒劳的呀,等你开关打开了,单片机才按照程序一句一句的执行程序,这时候他去监测开关自然是开关接通的啊,所以接受的数据一直都是0 。 同样的,等你开关断开的时候,单片机都没电了根本没法监测啊,所以根本没有数据发送过来。   (我再问一次,你说的开关是单片机的供电电源的开关,还是单片机一直都有电而你只是监测某一个引脚的高低电平呢 ???)

使用特权

评论回复
5
trouvan| | 2017-1-6 15:58 | 只看该作者
开关不会抖动把

使用特权

评论回复
6
ayb_ice| | 2017-1-6 16:54 | 只看该作者
两ms就已经去抖了

使用特权

评论回复
7
hel_zh|  楼主 | 2017-1-9 09:22 | 只看该作者
ayb_ice 发表于 2017-1-6 16:54
两ms就已经去抖了

通常不是5-20MS吗

使用特权

评论回复
8
hel_zh|  楼主 | 2017-1-9 09:23 | 只看该作者
刺客_阿瑞 发表于 2017-1-6 15:29
那不行啊,你想想看,开关断开的时候单片机都没有供电,也就没有工作,他怎么检查 ?  你上位机发送再多 ...

是开关量采集,不是我自己电路的开关。

使用特权

评论回复
9
刺客_阿瑞| | 2017-1-9 14:36 | 只看该作者
hel_zh 发表于 2017-1-9 09:23
是开关量采集,不是我自己电路的开关。

额,那你直接说监测某一个IO状态不就行了吗,简单明了,大家都明白了。另外:(1)你的开关是什么开关?(2)你的开关是直接和IO连接的吗?还是中间连接了其他的什么的?这一部分原理图放上来,我们看看,这个问题看似不重要,但是不同的使用,方法自然也是不同的啊。


我现在只能猜测,你的逻辑和硬件有点问题

使用特权

评论回复
10
hel_zh|  楼主 | 2017-1-10 14:39 | 只看该作者
刺客_阿瑞 发表于 2017-1-9 14:36
额,那你直接说监测某一个IO状态不就行了吗,简单明了,大家都明白了。另外:(1)你的开关是什么开关? ...

很简单。开关是3个脚的,一个常接点,一个常闭点(接电源),一个常开点(接地)。开关按下时,常接点对地通,单片机那边有上拉电阻,常接点直接接IO口

使用特权

评论回复
11
hel_zh|  楼主 | 2017-1-10 14:41 | 只看该作者
刺客_阿瑞 发表于 2017-1-9 14:36
额,那你直接说监测某一个IO状态不就行了吗,简单明了,大家都明白了。另外:(1)你的开关是什么开关? ...

不是不正常,是太正常了,我都觉得奇怪。
开始的时候,我还用状态机的方式去去抖,后来发现,即使不做任何处理,程序都能及时准确捕捉到开关按下

使用特权

评论回复
12
romantic_yhc| | 2017-1-18 16:44 | 只看该作者
hel_zh 发表于 2017-1-10 14:41
不是不正常,是太正常了,我都觉得奇怪。
开始的时候,我还用状态机的方式去去抖,后来发现,即使不做任 ...

相当于你直接检测按键信号边沿,检测到下降沿就动作,没有延时再判断处理。正常情况下没有问题,但在强干扰(EMC之类的)下,很容易就出现错误触发了

使用特权

评论回复
13
hel_zh|  楼主 | 2017-1-22 13:47 | 只看该作者
romantic_yhc 发表于 2017-1-18 16:44
相当于你直接检测按键信号边沿,检测到下降沿就动作,没有延时再判断处理。正常情况下没有问题,但在强干 ...

嗯,谢谢了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

34

帖子

0

粉丝