按键的设备驱动
在嵌入式系统中,按键的硬件原理比较简单,通过一个上拉电阻将处理器的外部中断(或GPIO)引
脚拉高,电阻的另一端连接按钮并接地即可实现。如图12.1 所示,当按钮被按下时,EINT10、EIN13、EINT14、
EINT15 上将产生低电平,这个低电平将中断CPU(图中的CPU 为S3C2410),CPU 可以依据中断判断按
键被按下。
但是,仅仅依据中断被产生就认定有一次按键行为是很不准确的,所有按键、触摸屏等机械设备
都存在一个固有的问题,那就是“抖动”,按键从最初接通到稳定接通要经过数毫秒,其间可能发生
多次“接通―断开”的过程。如果不消除“抖动”的影响,一次按键可能被理解为多次按键。
消除按键抖动影响的方法是:在判断有键按下后,进行软件延时(如20ms,在延时过程中要屏蔽对应
中断),再判断键盘状态,如果仍处于按键按下状态,则可以断定该按键被按下,流程如图12.2(a)所示。
如果按键对应的引脚本身不具备中断输入功能,则可以改为完全查询方式,流程如图12.2(b)所示。