20440|37

5276

帖子

5

TA的资源

裸片初长成(中级)

楼主
 

关于按键软件消抖中的释放抖动 [复制链接]

关于按键软件消抖中的释放抖动
按键释放的时候也是有抖动的,大家一般是怎么考虑的?特别是单独使用IO中断的按键。为什么?

[ 本帖最后由 wangfuchong 于 2012-10-31 10:48 编辑 ]

最新回复

在补充一下,如果是按键的引脚与别的外设引脚重用了,就需要考虑按键释放消抖的情况  详情 回复 发表于 2015-8-19 23:01

点评

并上个电容,用个好点的案件,不会有问题的.  详情 回复 发表于 2012-10-31 11:51
 
点赞 关注(1)
个人签名没工作,没女人老婆,没宽带 ,  没钱

回复
举报

5276

帖子

5

TA的资源

裸片初长成(中级)

沙发
 
完了完了,我又忍不住问了个低级问题
 
个人签名没工作,没女人老婆,没宽带 ,  没钱
 

回复

5015

帖子

12

TA的资源

裸片初长成(初级)

板凳
 
我一般倾向于硬件上并电容

点评

可是好像在哪里看到过硬件上并电容不一定那么可靠 那么好像老版LaunchPad的Demo和那个铁电MSP-EXP430FR5739的Demo中还是软件中使用了Debounce方法,那也是有电容的呀  详情 回复 发表于 2012-10-31 11:15
 
 
 

回复

1944

帖子

32

TA的资源

纯净的硅(高级)

4
 
软件消抖,通常就是延时,产生中断后,延时后查询其状态。

点评

我的意思是,按键按下产生中断,但是释放时既然也存在抖动,那么是不是也会产生中断呢?  详情 回复 发表于 2012-10-31 11:17
 
 
 

回复

5276

帖子

5

TA的资源

裸片初长成(中级)

5
 
原帖由 wstt 于 2012-10-31 10:52 发表
我一般倾向于硬件上并电容
可是好像在哪里看到过硬件上并电容不一定那么可靠
那么好像老版LaunchPad的Demo和那个铁电MSP-EXP430FR5739的Demo中还是软件中使用了Debounce方法,那也是有电容的呀
 
个人签名没工作,没女人老婆,没宽带 ,  没钱
 
 

回复

5276

帖子

5

TA的资源

裸片初长成(中级)

6
 
原帖由 azhiking 于 2012-10-31 11:12 发表
软件消抖,通常就是延时,产生中断后,延时后查询其状态。
我的意思是,按键按下产生中断,但是释放时既然也存在抖动,那么是不是也会产生中断呢?
 
个人签名没工作,没女人老婆,没宽带 ,  没钱
 
 

回复

474

帖子

2

TA的资源

纯净的硅(初级)

7
 

回复 楼主 wangfuchong 的帖子

并上个电容,用个好点的案件,不会有问题的.

点评

虽然实际可能是很少发生问题,但是从理论上给大家讲解清楚一点嘛。 我还没有就此问题单独查我所收藏的一些盗版扫描的电子书,不过貌似看到过按键按下和释放时的所示波形图呀,好像看到过至少按下时说要处理什么的  详情 回复 发表于 2012-10-31 14:46
 
 
 

回复

4996

帖子

19

TA的资源

裸片初长成(初级)

8
 
问题很简单,实现起来很麻烦。。。。。

点评

那就讲讲嘛,干嘛这么保守? 问出来就是为了讨论看看的  详情 回复 发表于 2012-10-31 14:33
 
个人签名我的博客
 
 

回复

3138

帖子

0

TA的资源

裸片初长成(初级)

9
 
1、用软件就可以消抖,并不是非用电容不可。对板上的触点开关检测,一般可以省去电容,仅用软件处理。

2、开关两端并电容有消抖效果,但也许更重要的是对板外来的触点信号有去除电压尖峰,保护接口电路的作用。

3、用软件消抖时,上下跃变沿(即开关的开/合)都应该处理,不能只处理一边。

点评

谢谢回复 能不能就软件消抖或者软件和并接电容结合说说大致的方法过程么?  详情 回复 发表于 2012-10-31 15:14
 
 
 

回复

141

帖子

0

TA的资源

一粒金砂(高级)

10
 
你想的复杂了,实际没有你说的那种情况发生

点评

我也只是问问 那么能请您稍微详细一点讲讲这样中断方式按键的处理原理和方式好吗?算是教授行吧?这样省得不踏实不明了,省得查一部部的和很可能知说到了一部分的书(实际上翻了下个别书我发觉好像如此),省得  详情 回复 发表于 2012-10-31 14:51
 
 
 

回复

5276

帖子

5

TA的资源

裸片初长成(中级)

11
 
原帖由 zhaojun_xf 于 2012-10-31 13:28 发表
问题很简单,实现起来很麻烦。。。。。
那就讲讲嘛,干嘛这么保守?
问出来就是为了讨论看看的
 
个人签名没工作,没女人老婆,没宽带 ,  没钱
 
 

回复

5276

帖子

5

TA的资源

裸片初长成(中级)

12
 
原帖由 zgbkdlm 于 2012-10-31 11:51 发表
并上个电容,用个好点的案件,不会有问题的.

虽然实际可能是很少发生问题,但是从理论上给大家讲解清楚一点嘛。
我还没有就此问题单独查我所收藏的一些盗版扫描的电子书,不过貌似看到过按键按下和释放时的所示波形图呀,好像看到过至少按下时说要处理什么的

关于好的按键还是坏的按键,这个恐怕不能太作为一个条件,再好的按键也会有损旧问题的。质量差的按键的使用我是有感受的,当然不是用在这种方式的按键,接触电阻变化是很大的。

再说,什么问题,即使实际不影响,但之前应该搞清楚嘛。假如要你做个导弹,装载的是核弹头发射到罗布泊试验,那中途要是掉下来落在有人区那可不是闹着玩的,难道你会以一种痞子赌博的心态对待?尽管可以以概率极低来降解自己良心的不安

[ 本帖最后由 wangfuchong 于 2012-10-31 15:17 编辑 ]
 
个人签名没工作,没女人老婆,没宽带 ,  没钱
 
 

回复

5276

帖子

5

TA的资源

裸片初长成(中级)

13
 
原帖由 zwq2 于 2012-10-31 14:19 发表
你想的复杂了,实际没有你说的那种情况发生

我也只是问问

那么能请您稍微详细一点讲讲这样中断方式按键的处理原理和方式好吗?算是教授行吧?这样省得不踏实不明了,省得查一部部的和很可能知说到了一部分的书(实际上翻了下个别书我发觉好像如此),省得花时间搜索排除千篇一律的文章

[ 本帖最后由 wangfuchong 于 2012-10-31 15:16 编辑 ]
 
个人签名没工作,没女人老婆,没宽带 ,  没钱
 
 

回复

5276

帖子

5

TA的资源

裸片初长成(中级)

14
 
原帖由 仙猫 于 2012-10-31 14:02 发表
3、用软件消抖时,上下跃变沿(即开关的开/合)都应该处理,不能只处理一边。
谢谢回复

能不能就软件消抖或者软件和并接电容结合说说大致的方法过程么?

点评

如电容足够大,也许软件不必再处理,这里仅讨论本猫自己用的软件去抖方法。 ①.利用定时器中断(比如1ms)读开关,并对外(其他程序)输出。该服务程序需设置以下资源:   ● 一个计数器cnt(初始值可为0)  详情 回复 发表于 2012-10-31 17:22
 
个人签名没工作,没女人老婆,没宽带 ,  没钱
 
 

回复

1万

帖子

16

TA的资源

版主

15
 

中断不用延时,查询用

点评

我大概知道你的意思吧 记得好像看到过有文章说对于释放时的抖动,如果按下时的抖动软件处理的好的话,可以不用考虑,大概是这个意思 但是我不知道新手能否理解其中到底是什么意思?为什么不说清楚一点呢?  详情 回复 发表于 2012-10-31 16:46
 
个人签名http://shop34182318.taobao.com/
https://shop436095304.taobao.com/?spm=a230r.7195193.1997079397.37.69fe60dfT705yr
 
 

回复

5276

帖子

5

TA的资源

裸片初长成(中级)

16
 
原帖由 ddllxxrr 于 2012-10-31 15:38 发表

我大概知道你的意思吧

记得好像看到过有文章说对于释放时的抖动,如果按下时的抖动软件处理的好的话,可以不用考虑,大概是这个意思

但是我不知道新手能否理解其中到底是什么意思?为什么不说清楚一点呢?



另外补充一下,前面我说MSP-EXP430FR5739中带电容,我刚刚打开看了一下,好像实际没有,记错了。没仔细看,大家感兴趣的可以查查。
 
个人签名没工作,没女人老婆,没宽带 ,  没钱
 
 

回复

3138

帖子

0

TA的资源

裸片初长成(初级)

17
 
如电容足够大,也许软件不必再处理,这里仅讨论本猫自己用的软件去抖方法。

①.利用定时器中断(比如1ms)读开关,并对外(其他程序)输出。该服务程序需设置以下资源:
  ● 一个计数器cnt(初始值可为0)
  ● 一个记忆上次开关状态的存储器cur
  ● 设读到的开关状态为in,对外输出为out

 下面以8ms消抖为例:

②.中断服务处理
  in ← 开关的当前状态(读开关);
  if (in≠cur) {
    cnt ← 0;
  } else {
    if (cnt < 7) {
      cnt ← cnt + 1;
    } else {
      out ← in;
    }
  }
  cur ← in;

用1ms定时器是为了好算,而且这年头的处理器对ms级的中断不会有太重的负担。
另外这个办法的效果应好过古典的8279芯片去抖,8279只要求10ms前后2次开关状态相同,而这里连续比较了8次。

去抖处理原理图.gif (30.61 KB, 下载次数: 1)

仙科院颁布的去抖处理原理图

仙科院颁布的去抖处理原理图
 
 
 

回复

5276

帖子

5

TA的资源

裸片初长成(中级)

18
 
楼上是使用轮询方式的?

我主要是关于直接使用IO上下沿中断方式的

点评

我说的中断不用查的意思是说,CPU都识别的按键,抖不抖的都识别了。再延时,是不是不相信CPU的处理能力  详情 回复 发表于 2012-10-31 21:52
IO跃变沿触发中断后—— 办法①:插入一段软件延迟后再读开关,若确认状态不变则输出该状态,否则放弃。 办法②:启动一定时器,等进入该定时器timeout中断后再如上读开关并判断是否输出。 ①是极坏的办法  详情 回复 发表于 2012-10-31 17:45
 
个人签名没工作,没女人老婆,没宽带 ,  没钱
 
 

回复

3138

帖子

0

TA的资源

裸片初长成(初级)

19
 
原帖由 wangfuchong 于 2012-10-31 17:29 发表
我主要是关于直接使用IO上下沿中断方式的
IO跃变沿触发中断后——

办法①:插入一段软件延迟后再读开关,若确认状态不变则输出该状态,否则放弃。

办法②:启动一定时器,等进入该定时器timeout中断后再如上读开关并判断是否输出。

①是极坏的办法,强烈建议BS之。

点评

对于2 ,有没有使用的时候没有独IO的状态的? 另外,弹起的时候实际上有可能又经历了一遍2的处理只不过第二次的IO中断被判断为无效?如果有这样的情况有这样的文献说了么?  详情 回复 发表于 2012-10-31 21:41
 
 
 

回复

1560

帖子

24

TA的资源

五彩晶圆(初级)

20
 
中断吧。每100ms中断一次,然后把事件记录到联合体中,再查询。

点评

什么意思?如果使用IO上下沿中断而平时是进入LMP4的状态是没得时钟的吧。 其实也没什么,我只是想得到确切的描述罢了。这样十分普用的方式总得有一个明确清晰的说法吧?  详情 回复 发表于 2012-10-31 21:45
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表