打印
[51单片机]

使用状态机对adc按键消抖,发现按键切换延时逆天。请各位看下,谢谢

[复制链接]
1262|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
chen915|  楼主 | 2020-8-28 17:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
fcccc| | 2020-8-29 08:29 | 只看该作者
本帖最后由 fcccc 于 2020-8-29 08:37 编辑

if (Key_Value != Last_Key_Value)
{
  //既然当前按键值和上一次不一样肯定有切换了
  //执行短按动作,
}
else//和上次一样那就计时,作为判断长按的依据.
{
  if(Cont_Time<LONG_PRESS)
{
  Cont_Time++;
}
else
//执行长按动作.
}

这个程序周期性调用就行了.

使用特权

评论回复
评论
fcccc 2020-8-29 08:34 回复TA
注意这个Key_Value并不是ADC读取的值,而是按键标号; 比如 用电阻分压, if(AD_Value>1000) Key_Value = 1; else if(AD_Vlue<500) Key_Value = 2; 
板凳
chen915|  楼主 | 2020-8-29 09:06 | 只看该作者
fcccc 发表于 2020-8-29 08:29
if (Key_Value != Last_Key_Value)
{
  //既然当前按键值和上一次不一样肯定有切换了

多谢回答。请移步https://bbs.21ic.com/icview-3015942-1-1.html

使用特权

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

本版积分规则

3

主题

50

帖子

0

粉丝