samsung 6410 矩陣鍵盤驅動移植
目錄
1概述:...
12驅動檔案:...
13編譯到核心:...
24驅動檔案分析:...
24.1s3c-keypad.h.
24.2s3c-keypad.c.
35應用層獲取鍵盤事件...4
由於專案需要用到鍵盤操作,所以移植了6410的鍵盤驅動程式,先google一下前輩的精華,在結合自己實際移植情況,做一些簡單記錄,以備忘。
核心版本: 2.6.28
硬體部分:略,基本按datasheet來
上層應用:qt2.2.0
選擇 devicedrivers -> input device support -> keyboards -> s3c keypad support
將驅動編譯進核心
先看標頭檔案,標頭檔案是非常可幫助了解檔案結構和介面的。
linux核心封裝了keypad到應用層的介面,驅動程式從按鍵裝置獲取中斷後,利用乙個定時器,檢測那些按鍵是否,按下(防抖),彈起,長按鍵等,分類出不同的事件通過 input_report_key 函式送入 linux,而應用層則通過和linux的底層通訊,可以主動或被動獲得這些訊息,然後再分發出去。
通過qkeyevent可以獲得鍵盤不同事件和鍵碼,並進行自己的流程處理。
注:還有些複雜按鍵,如:2,3組合鍵等,在此略。
矩陣鍵盤掃瞄
矩陣鍵盤掃瞄一般採取行列掃瞄法。比如先拉低所有列線,拉高行線,之後讀取行線狀態,如果行線有一行為低,則假設有按鍵按下,此時再延時20毫秒左右後判 斷行線的某一行是否仍然為低,若為低則確認有鍵按下。這時可以進行按鍵鍵值判斷,即判別在哪一行哪一列有按鍵按下。判斷的方法是通過拉高列線,依次置行線 的某一行...
矩陣鍵盤掃瞄
矩陣鍵盤掃瞄 module matrix keyboard input clk 50m,50m時鐘 input rst n,復位 input 3 0 row,矩陣鍵盤行輸入 output reg 3 0 col,矩陣鍵盤列輸出 output reg key flag,按鍵按下標誌 output re...
矩陣鍵盤掃瞄
根據矩陣鍵盤的原理圖可知,當沒有按鍵按下時,p1 0xf0 然後依次將p1 0 p1 3單獨置低電平,其他置高,再掃瞄各列的狀態,來判斷是哪個按鍵按下,比如,將p1 0輸出低電平,其他的引腳都輸出高電平,即p1 0xfe,那麼當第1行有按鍵按下時p1的相應值為,1x1 01111110 0x7e 1...