-->

请教问题。单片机_双击_。

2019-01-02 21:23发布

问题:

1.不要所谓的状态机方法
2.不要开定时器0的中断(可以开/关定时器0 但不开中断)
3.如果开中断也行(不得已最后方法)

说明:因为用的是触摸单片机的触摸按键。 按键为1有效。不需要滤波。

实现的基本原理:判断2次按下的时间,>500(or250ms)再有按键按下,就是双击;没有就是_单击_。

目前的状况:我水平很菜,网上看了很多,书上也翻了,我是没实现的了。已经搞了_3天_了,就这个功能了,怎么弄都不行了,快崩溃了。

回答1:

最简单的办法是在电路上想法子.我以前干这个的时候肯定让做硬件的工程师给我弄一个电路实现.
用到2个针脚一个单击一个双击.按钮同一个,
按下按钮后.如果线路当前是高电平就将将双击针脚置为高电平.将电路接地回到低电平.
如果当前是低电平将线路设置为高电平.在高电平保持500ms
后将单击针脚置为高电平.将电路接地回到低电平.
这种是取巧的法子.就算是鼠标的双击.也是操作系统判定的.而不是鼠标本身就知道是双击的.
你要用软件是一定要开定时器的.软件的做法就简单的多的.思路和上面是一定的.
bool 第一次=false;
点击中断中:if(第一次){第一次=false;触发双击事件,}else{第一次=true;打开定时器}
定时器中断中:if(延时小于500毫秒){return;} if(第一次){第一次=false;触发单击事件}



标签: