作者ruemann (此人挂网中……)
看板ASM
标题Re: [问题] 关於BUTTON连按侦测的方法(使用MCU, C …
时间Mon Apr 2 02:54:14 2007
※ 引述《LLight (世上皆虚情假意..)》之铭言:
: ※ 引述《thomas5678 (thomas)》之铭言:
: : 感谢, 另外想问的是, 连按(Double click)会不会被误判为两次单按, 或一次单按,
: : 我要作到按一次 LED ON, 在按一次 LED OFF, 连按开启relay, 蜂鸣器响.
: : 像滑鼠的double click, 为何准确度这麽高, 是用软体还是硬体作的???
: : xor 要如何做呢??? 能否用文字叙述一下流程, 谢谢^^
: 至於xor的流程? 就是xor的原理... 看它的真值表...
: 记原先的值,XOR後来的值.. 要设一FG..
: 按一次LED ON.. 另一次LED OFF.. 连按两次,开启RELAY..
: 前面二个好完成,最後一个,以防弹跳的想法来看,我不会.. 哈..
: 滑鼠嘛.. 不懂.. 希望有人补上,也想知道了.. 哈..
滑鼠是用软体完成的,滑鼠有按时会把值送过去,不会特别分单按或连按。
开始-->控制台-->滑鼠。里面有一个可以调整按两次的速度,是由那边去设定的。
要如何用单晶片完成连按的function?
简单可以由下面的流程完成:
假设两次按键时间<100ms则判定为连按:
interrupt: 每1ms把1ms_timer++
侦测按键 -y-> 反弹跳 --> 按下? -y-> FgSingle=low? -n-> 1ms_timer < 99? -
| | | |
n y y n
| | | |
侦测按键 判定单按 判定连按 判定单按
bs FgSingle bc FgSingle bc FgSingle
clr 1ms_timer clr 1ms_timer clr 1ms_timer
|______________|______________|
|
侦测按键
--
我是路人甲
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 203.70.245.90
※ 编辑: ruemann 来自: 203.70.245.90 (04/02 02:55)
1F:推 thomas5678:抱歉这麽晚回应, 最近在帮客户除错, 非常感谢你详细解 04/04 02:49
2F:→ thomas5678:说, 我会试试看, 谢谢. 04/04 02:51