红外遥控如何实现长短键
1、坚持一个原则,授之以渔,举一反三。关于这个问题,程序匠人曾经写过一个短文叫“按键漫谈”,图文并茂,可以去百度文库里搜索一下。
2、如何区别“短击”和“长击”?a) 定义一个变量:KEY_JSQ = 按键闭合计数器 b) 定义一个常数:AN_CJ_DL = 按键长击时间常数
3、c) 定时检测按键,当按键闭合时,KEY_JSQ按一定的频率递增; d) 当KEY_JSQ>= AN_CJ_DL 时,确认一次有效长击。
4、e)当按键释放时,再判一次KEY_JSQ,如果KEY_JSQ< AN_CJ_DL,则说明刚才释放的那次击键为“短击”
5、f) 需要指出的是,当一个按键上同时支持“短击”和“长击”时, 二者的执行时机是不同的。 i. 一般来说,“长击”一旦被检测到就立即执行。 ii. 而对于“短击”来说,因为当按键刚被按下时,系统无法预知本次击键的时间长度,所以,“短击”必须在释放后再执行。
6、g) 当按键释放后,KEY_JSQ应当被清零。判断完成之后,红外编码,然后发射
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:48
阅读量:46
阅读量:59
阅读量:91
阅读量:47