linux驅動學習--第二十一天:第十二章:Linux 字符設備驅動綜合實例(一) 鍵盤驅動

按鍵的設備驅動

 

在嵌入式系統中,按鍵的硬件原理比較簡單,通過一個上拉電阻將處理器的外部中斷(或GPIO)引
腳拉高,電阻的另一端連接按鈕並接地即可實現。如圖12.1 所示,當按鈕被按下時,EINT10、EIN13、EINT14、
EINT15 上將產生低電平,這個低電平將中斷CPU(圖中的CPU 爲S3C2410),CPU 可以依據中斷判斷按
鍵被按下。
但是,僅僅依據中斷被產生就認定有一次按鍵行爲是很不準確的,所有按鍵、觸摸屏等機械設備
都存在一個固有的問題,那就是“抖動”,按鍵從最初接通到穩定接通要經過數毫秒,其間可能發生
多次“接通―斷開”的過程。如果不消除“抖動”的影響,一次按鍵可能被理解爲多次按鍵。
消除按鍵抖動影響的方法是:在判斷有鍵按下後,進行軟件延時(如20ms,在延時過程中要屏蔽對應
中斷),再判斷鍵盤狀態,如果仍處於按鍵按下狀態,則可以斷定該按鍵被按下,流程如圖12.2(a)所示。
如果按鍵對應的引腳本身不具備中斷輸入功能,則可以改爲完全查詢方式,流程如圖12.2(b)所示。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章