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