发新帖我要提问
123
返回列表
打印
[STM32F1]

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

[复制链接]
楼主: 铜牌之路
手机看帖
扫描二维码
随时随地手机跟帖
41
铜牌之路|  楼主 | 2015-6-27 12:00 | 只看该作者 回帖奖励 |倒序浏览
wlzeagle 发表于 2015-6-27 11:43
这样的代码实验用的吧?

嗯嗯

使用特权

评论回复
42
铜牌之路|  楼主 | 2015-6-27 12:01 | 只看该作者
aichixiaobaicai 发表于 2015-6-27 10:10
会不会,有时候判断不出来呢????

目前看来没有出现问题

使用特权

评论回复
43
铜牌之路|  楼主 | 2015-6-27 12:02 | 只看该作者
Progrime 发表于 2015-6-27 08:53
//我的做法,发来大家呵呵一下
//定时中断,中断服务程序:
static u32 key_A14 = 0; //static u16 key_A14 ...

高:victory:

使用特权

评论回复
44
周董| | 2015-6-27 15:03 | 只看该作者
这个有什么亮点吗

使用特权

评论回复
45
huangqi412| | 2015-6-27 21:26 | 只看该作者
都是菜鸟起步 鼓励楼主

使用特权

评论回复
46
二月十五| | 2015-6-28 08:51 | 只看该作者
  delay_ms(100);

使用特权

评论回复
47
铜牌之路|  楼主 | 2015-6-28 09:40 | 只看该作者
huangqi412 发表于 2015-6-27 21:26
都是菜鸟起步 鼓励楼主

谢谢

使用特权

评论回复
48
铜牌之路|  楼主 | 2015-6-28 09:40 | 只看该作者

使用特权

评论回复
49
可可球| | 2015-6-29 22:10 | 只看该作者
这是一个简单的延时

使用特权

评论回复
50
尤彼卡| | 2015-6-29 22:16 | 只看该作者
这个消抖方法很普通的

使用特权

评论回复
51
西门看雪| | 2015-6-29 22:32 | 只看该作者
大学就是专门教这种垃圾代码,还有一些低端的例程……

一个处理器就被你这个按键检测卡死了。

使用特权

评论回复
52
Simon21ic| | 2015-6-30 21:07 | 只看该作者
原来可以这么简单,LZ奇才

使用特权

评论回复
53
our单片机| | 2015-7-2 10:45 | 只看该作者
楼主,你这个代码非常精辟,作用巨大,能让一切的系统卡死,太厉害了,非常有含金量,楼主千万别开源,
不然又被奸商拿去卖了!

使用特权

评论回复
54
our单片机| | 2015-7-2 10:48 | 只看该作者
我来给楼主写个没有任何含金量的延时代码
if( KEYDOWN )
{
    static u8 DlayCnt = 0;
    if( DelayCnt & 0x80 )
     return KeyVal;
    else
    {
        DelayCnt<<= 1;
        return 0;
    }
}

使用特权

评论回复
55
gmm2015| | 2015-7-2 11:25 | 只看该作者
一般稍微功能多点的程序都不会使用这种方法。用定时器扫描吧

使用特权

评论回复
56
hgjinwei| | 2015-7-2 12:49 | 只看该作者
谁说了delay_ms就是死等的啦?
万一人家是调用系统任务挂起接口呢。

这方法根本原因不是那个delay_ms,而是采样太慢,采样数太少,100毫秒才采样一次,一次跳变就认为有效,这个按键用不了多久就会异常了。

使用特权

评论回复
57
286005374| | 2015-7-2 16:45 | 只看该作者
在主程序里 判断低电平 且计数   累加到一定的值判断为有效按键   中间有读到高电平对计数值清零 认为是误操作

使用特权

评论回复
58
湖边男孩| | 2015-7-2 17:09 | 只看该作者
这个还叫好用,没话说了

使用特权

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

本版积分规则