见过好多按键扫描,全是SWITCH结构,看得头大,
后来花时间做了一种矩阵式按键扫描,,
这里讲讲算法,不添加代码,是为了让各位朋友自己动手,体验一把,
当然希望朋友们能有更好的算法提出,这里仅起一个抛砖引一玉的作用,
:定时采样,将按键分为7种状态: 无键按下/按键按下/短按/长按/长按连发/长按抬起,
处用多次采样计数来区别各个状态,
然后做一个矩阵表,以按键电压和按键状态为两轴,
根据按键状态发消息到消息队列即可.
当然在发到消息队列前也可根据当前系统状态转换消息,,
这种按键的优缺点在于:
代码紧凑,容易理解,维护简单,
但发出的消息与系统当前任务无关,只能靠发消息前转换得到,
偶曾用此办法实现好几款机的按键,,效果不错,
|