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