觸摸屏驅(qū)動程序的設(shè)計和實現(xiàn)
嵌入式設(shè)備觸摸屏按其技術(shù)原理可分為五類:矢量壓力傳感式、電阻式、電容式、紅外線式和表面聲波式。其中電阻式觸摸屏在嵌入式系統(tǒng)中用的較多,電阻式觸摸屏可分為四線、五線、七線等幾種。一般來說,WinCE觸摸屏驅(qū)動的設(shè)計和實現(xiàn)有以下幾個步驟:
本文引用地址:http://2s4d.com/article/195746.htm(1)配置和初始化觸摸屏
觸摸屏驅(qū)動在初始化過程會調(diào)用TouchPanelEnable函數(shù),該函數(shù)調(diào)用的DDSI函數(shù)為DdsiTouchPanelEnable和 DdsiTouchPanelDisable。這兩個DDSI接口函數(shù)是驅(qū)動實現(xiàn)的關(guān)鍵所在,分別用于打開和關(guān)閉觸摸屏硬件。但是為了降低功耗,這兩個函數(shù)其實可以不真正操作硬件,而只是實現(xiàn)軟件上的控制。
同時,在初始化時還需要進(jìn)行這幾個配置和初始化:一是創(chuàng)建事件hTouchPanelEvent和 hCalibrationSampleAvailable,前者是在正常狀態(tài)下當(dāng)有觸摸筆按下或者按下后需要定時采集數(shù)據(jù)時被觸發(fā);而后者是在校準(zhǔn)狀態(tài)下當(dāng)有校準(zhǔn)數(shù)據(jù)輸入時被觸發(fā)。二是檢查初始化所需的中斷gIntrTouch(觸摸屏中斷)和gIntrTouchChanged(定時器中斷),并將這兩個中斷關(guān)聯(lián)到事件hTouchPanelEvent。三是創(chuàng)建一個ISR線程TouchPanelpISR,用于等待和處理觸摸屏事件 hTouchPanelEvent,它也是整個驅(qū)動程序中唯一的事件源。
(2)校準(zhǔn)觸摸屏基準(zhǔn)參數(shù)
完成前面繁瑣的工作后,驅(qū)動程序的各種功能就都已經(jīng)準(zhǔn)備就緒了,現(xiàn)在就可以實際操作觸摸屏幕了。但一般來說,電阻式觸摸屏需要校準(zhǔn),也就是說在驅(qū)動啟動過程中MDD層要調(diào)用相應(yīng)的DDSI函數(shù)來讀取注冊表中的校正數(shù)據(jù)校正觸摸屏。理想情況下,校準(zhǔn)程序只要在嵌入式設(shè)備初次加電測試過程中運行一次就可以了,參考值會被存儲在非易失性存儲器中,以免讓用戶在以后的加電啟動期間再做校準(zhǔn)。不過,高質(zhì)量的觸摸屏驅(qū)動程序是應(yīng)該要向用戶提供一種進(jìn)入校準(zhǔn)例程的途徑,從而在由于溫度漂移或其它因素造成校準(zhǔn)不準(zhǔn)確時進(jìn)行重新校準(zhǔn)。
電容式觸摸屏相關(guān)文章:電容式觸摸屏原理
評論