break;

}

else if ( 0xff == keybuf)

{

keysta = key_High;

break;

}

else

{

//电平不稳定,继续采样

}

}

else

{

break; //采样超时

}

}

return keysta; //返回采样值

}

上述就是一个完整的滤波采样过程。

这种方式是在rt-thread系统上设计的,其好处是在检测按键的时候,我们并没有空等,而是采样rt_thread_delay将资源让出去,多次采样之后,判决是按键按下还是松开。因为如果是人为操作,往往这个过程是200ms左右。

04总结

本文详细描述了一个机械按键如何去处理按键抖动的问题,在以后设计程序的时候,也需要充分的考虑产品的稳定性与合理性,一定需要提高用户体验。嵌入式工程师不仅仅是去解决一个又一个技术上的难题,也要有产品意识以及从用户角度去思考问题,这样做出的东西体验才会更好。

关于嵌入式技术就介绍完了,您有什么想法可以联系小编。

  • UC3846控制芯片工作原理控制图 逆变焊机原理与用途
  • 数字万用表电阻档测试二极管正反向没有阻值(使用万用表测量二极管的正向电阻,为什么各档)
  • 学单片机需要学数电模电吗(学单片机要先学数电模电吗)
  • 电工怎么选择适合自己用的万用表(电工初学者买什么样的万用表好)
  • 单片机需要同时运行多个任务怎么办(单片机怎么同时执行多个任务)
  • 电机保护的方案取决于负载的机械特性
  • 绝缘电阻表正负搭接不复零位是怎么回事
  • 短路怎么用万用表查