[STM32F1] 给大家分享一个按键消抖程序,很好用

[复制链接]
21430|57
 楼主| 铜牌之路 发表于 2015-6-27 12:00 | 显示全部楼层
wlzeagle 发表于 2015-6-27 11:43
这样的代码实验用的吧?

嗯嗯
 楼主| 铜牌之路 发表于 2015-6-27 12:01 | 显示全部楼层
aichixiaobaicai 发表于 2015-6-27 10:10
会不会,有时候判断不出来呢????

目前看来没有出现问题
 楼主| 铜牌之路 发表于 2015-6-27 12:02 | 显示全部楼层
Progrime 发表于 2015-6-27 08:53
//我的做法,发来大家呵呵一下
//定时中断,中断服务程序:
static u32 key_A14 = 0; //static u16 key_A14 ...

高:victory:
周董 发表于 2015-6-27 15:03 | 显示全部楼层
这个有什么亮点吗
huangqi412 发表于 2015-6-27 21:26 来自手机 | 显示全部楼层
都是菜鸟起步 鼓励楼主
二月十五 发表于 2015-6-28 08:51 | 显示全部楼层
  delay_ms(100);
 楼主| 铜牌之路 发表于 2015-6-28 09:40 | 显示全部楼层
huangqi412 发表于 2015-6-27 21:26
都是菜鸟起步 鼓励楼主

谢谢
 楼主| 铜牌之路 发表于 2015-6-28 09:40 | 显示全部楼层
可可球 发表于 2015-6-29 22:10 | 显示全部楼层
这是一个简单的延时
尤彼卡 发表于 2015-6-29 22:16 | 显示全部楼层
这个消抖方法很普通的
西门看雪 发表于 2015-6-29 22:32 | 显示全部楼层
大学就是专门教这种垃圾代码,还有一些低端的例程……

一个处理器就被你这个按键检测卡死了。
Simon21ic 发表于 2015-6-30 21:07 来自手机 | 显示全部楼层
原来可以这么简单,LZ奇才
our单片机 发表于 2015-7-2 10:45 | 显示全部楼层
楼主,你这个代码非常精辟,作用巨大,能让一切的系统卡死,太厉害了,非常有含金量,楼主千万别开源,
不然又被奸商拿去卖了!
our单片机 发表于 2015-7-2 10:48 | 显示全部楼层
我来给楼主写个没有任何含金量的延时代码
  1. if( KEYDOWN )
  2. {
  3.     static u8 DlayCnt = 0;
  4.     if( DelayCnt & 0x80 )
  5.      return KeyVal;
  6.     else
  7.     {
  8.         DelayCnt<<= 1;
  9.         return 0;
  10.     }
  11. }
gmm2015 发表于 2015-7-2 11:25 | 显示全部楼层
一般稍微功能多点的程序都不会使用这种方法。用定时器扫描吧
hgjinwei 发表于 2015-7-2 12:49 | 显示全部楼层
谁说了delay_ms就是死等的啦?
万一人家是调用系统任务挂起接口呢。

这方法根本原因不是那个delay_ms,而是采样太慢,采样数太少,100毫秒才采样一次,一次跳变就认为有效,这个按键用不了多久就会异常了。
286005374 发表于 2015-7-2 16:45 | 显示全部楼层
在主程序里 判断低电平 且计数   累加到一定的值判断为有效按键   中间有读到高电平对计数值清零 认为是误操作
湖边男孩 发表于 2015-7-2 17:09 | 显示全部楼层
这个还叫好用,没话说了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部