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

[复制链接]
 楼主| chen915 发表于 2020-8-28 17:05 | 显示全部楼层 |阅读模式
新人,乳鸽级。用状态机对stc adc按键进行消抖,程序能运行,但是按键间的切换延时超级长,可达40多秒。不知道哪里出错。
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
//执行长按动作.
}

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

评论

注意这个Key_Value并不是ADC读取的值,而是按键标号; 比如 用电阻分压, if(AD_Value>1000) Key_Value = 1; else if(AD_Vlue<500) Key_Value = 2;  发表于 2020-8-29 08:34
 楼主| 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

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