首页 新闻 会员 周边 捐助

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

0
[已解决问题] 解决于 2018-11-23 10:45

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

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

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

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

tianqi911的主页 tianqi911 | 菜鸟二级 | 园豆:218
提问于:2018-10-19 11:25
< >
分享
最佳答案
0

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

奖励园豆:5
吴瑞祥 | 高人七级 |园豆:29449 | 2018-10-21 11:45

第一次看见硬件实现的思路,NB呀。 因为我水平菜,看不懂状态机。。。

tianqi911 | 园豆:218 (菜鸟二级) | 2018-10-23 10:15

@tianqi911: 做单片机.状态机是非常基础的一种东西.不懂不行的.
随便一个什么东西都要用到状态机的.

吴瑞祥 | 园豆:29449 (高人七级) | 2018-10-23 11:24

@吴瑞祥: 我只是觉的,以前没有鼓吹状态机思想的时候,哪些工程师照样做的非常好。所以我想应该有简单的方法,不一定所有的东西都要用状态机。

tianqi911 | 园豆:218 (菜鸟二级) | 2018-10-24 15:51

@tianqi911: 状态机是自动化一出现就有的了的.在单片机之前.就有了状态机
状态机只是一种概念.甚至随便一个程序都可以当成一个状态机.

吴瑞祥 | 园豆:29449 (高人七级) | 2018-10-24 17:51
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册