多點觸控螢幕 電容屏驅動程式

2022-06-21 06:42:11 字數 1366 閱讀 3478

上面部落格中講解了電阻屏觸控螢幕的驅動程式,它是乙個單點觸控的裝置。現在大多數裝置都支援了多點觸控,多點觸控的好處:

1)利用兩個手指可以放大或縮小;

2)在乙個觸控螢幕上,可以同時供多人使用;

在上述這兩個簡單的例子中,單點觸控就無法實現。必須使用多點觸控,顧名思義多點觸控就是在同一時間內,螢幕上可能有多個觸點,驅動程式只需要把這多個觸點的位置上報給應用程式就可以了。至於應用程式怎麼處理,那是應用程式的事情。

驅動:上報多個觸點的位置

現在來看一下,單點觸控螢幕驅動程式與多點觸控螢幕驅動程式有哪些差異?

驅動程式應該上報什麼樣的資料?

單點:按下:   btn_touch  ,1(表示按下)

在滑動的過程中需要上報觸點的位置:

for (; ;)

鬆開:   btn_touch  ,0(表示鬆開)

abs_pressure , 0(表示鬆開)uod

多點:多點觸控螢幕驅動程式上報的資料也是比較簡單的,在同一時刻,有多少個點就上報多少個點的資料就可以了。

for(;;)

問題來了,如何上報這些觸點的位置?觀察一下這幾個觸點,它們之間有什麼聯絡?

p1和p3屬於同乙個手指上的劃痕

p2和p4屬於同乙個手指上的劃痕

在上報位置的時候,是否需要將觸點之間的關係上報。由此上報資料就分為了兩種。type a 和type b

type a :只上報觸點位置,不關心觸點之間的關係

從上面可以看出,只是將觸點的位置上報上去了,至於觸點的關係不去處理。那誰去處理呢?

是由應用程式進行處理的。比如說p1和p3的位置比p1和p4的位置近,就認為p1和p3是乙個手指滑動產生的,這僅僅是說明可能存在這種處理方式,在此不進行深究。

在應用程式中需要計算,這種方式比較耗時。

typeb:上報觸點位置,也上報觸點之間的關係

現在的多點觸控螢幕一般來說都有乙個控制ic,直接訪問控制ic就可以得到觸點的位置,並且得到觸點的關係。

比如說在t1時刻,去讀控制ic,可以得到p1的位置,p2的位置。p1的id,假設此id為0。p2的id,假設此id為1

在t2時刻,去讀控制ic,可以得到p3的位置,p4的位置。p3的id,假設為此id為0.(表示p1,p3屬於同一條劃痕)。p4的id,假設此id為1(表示p2,p4屬於同一條劃痕).

舉個例子:

觸控螢幕驅動程式

觸控螢幕工作原理 s3c2440觸控螢幕目標是獲取 x y座標資訊,座標資訊獲取分兩種 1 x y位置分布轉換模式,先獲取其中乙個座標,再獲取另外乙個。2 x y自動轉換模式,兩個座標同時獲取到。工作流程 一 選擇x y 座標獲取模式,分別還是自動。二 設定觸控螢幕到等待終端的狀態。三 如果中斷發生...

29 1 電容觸控螢幕

1.觸控螢幕簡介 觸控螢幕又稱觸控面板,它是一種把觸控位置轉化成座標資料的輸入裝置,根據觸控螢幕的檢測原理,主要分為電阻式觸控螢幕和電容式觸控螢幕。電阻屏造價便宜,能適應較惡劣的環境,但它只支援單點觸控 一次只能檢測面板上的乙個觸控位置 觸控時需要一定的壓力,使用久了容易造成表面磨損,影響壽命 而電...

觸控螢幕驅動

輸入子系統體系 核心層 linux dir drivers input input.c 提供最核心函式 裝置事件層 linux dir drivers input evdev.c 提供handler 提供輸入裝置產生的原始資料並上報給應用程式,這適用於 所有輸入裝置,該觸控螢幕也不例外 編寫基於輸入...