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