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