基于μClinux的觸摸屏軟硬件關(guān)鍵技術(shù)分析
read:ts_read, //讀數據操作
poll:ts_poll, //非阻塞操作
open:ts_open, //打開(kāi)設備
release:ts_release, //釋放設備
fasync:ts_fasync, //異步觸發(fā)}
完整的結構還包括llseek、readdir等函數指針,只是由于在本程序中沒(méi)有用到,所以省略不寫(xiě),內核把它們默認為空(NULL)。
觸摸屏驅動(dòng)程序的流程及關(guān)鍵函數
在本設計中,我們使用μClinux2.4內核。驅動(dòng)程序主要設計思想是:驅動(dòng)程序在初始化結束后,進(jìn)入空閑狀態(tài),等待中斷的到來(lái)。一旦筆中斷(pen_irq)發(fā)生,則進(jìn)入中斷處理程序,進(jìn)行數據采樣、轉換和傳輸,同時(shí),程序對各種不同的情況進(jìn)行鑒別和異常處理。
觸摸屏軟件流程如圖3所示。在驅動(dòng)程序中設定了觸摸屏所處的7個(gè)不同狀態(tài),分別用從-1到5的數字表征,這7個(gè)狀態(tài)構成了一個(gè)觸摸屏狀態(tài)機,系統根據當前狀態(tài)做出下一步的處理,如表1所示。整個(gè)軟件設計根據功能可以劃分為5個(gè)部分,分別是初始化、設備打開(kāi)、讀操作、中斷處理以及I/O控制,下面具體介紹每一部分。
評論