<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 測試測量 > 設計應用 > 觸摸屏驅動(dòng)程序的設計和實(shí)現

觸摸屏驅動(dòng)程序的設計和實(shí)現

作者: 時(shí)間:2009-08-28 來(lái)源:網(wǎng)絡(luò ) 收藏

在理想情況下,校正基準只需兩組原始數據,即在屏幕對角讀取的最小和最大值。但在實(shí)際應用中,因為許多電阻式存在明顯的非線(xiàn)性,如果只在最小和最大值之間簡(jiǎn)單的插入位置數值會(huì )導致非常的不精確。因此,在WinCE中需要獲取多個(gè)校準點(diǎn),常用的校準點(diǎn)數量為5個(gè)。

方法是:①首先在函數DdsiTouchPanelGetDeviceCaps 中設置校準點(diǎn)的個(gè)數;②是系統在 TouchDriverCalibrationPointGet中獲取每個(gè)校準點(diǎn)的屏幕坐標;③是在屏幕界面的校準點(diǎn)坐標處顯示一個(gè)位置符號,用戶(hù)需要精確地在位置符號按下;④通過(guò)TouchPanelReadCalibrationPoint函數讀取相應的觸摸屏坐標值;⑤然后再開(kāi)始下一個(gè)校準點(diǎn),直到循環(huán)設定的次數后將采集到的觸摸屏坐標值和校準點(diǎn)屏幕坐標送到TouchPanelSetCalibration函數中進(jìn)行處理,該函數將產(chǎn)生校準基準參數。校準完成之后,觸摸屏便可以開(kāi)始正常的操作了。

(3)判斷屏幕是否被觸摸

一旦完成了觸摸屏硬件設置、初始化和基準參數校準后,接下來(lái)就需要用一種可靠的方法來(lái)判斷屏幕是否被觸摸了。WinCE提供了屏幕是否被觸摸的檢測機制,而且當觸摸事件發(fā)生時(shí)還可選擇是否中斷主處理器。判斷屏幕是否被觸摸的驅動(dòng)程序的函數名叫WaitForTouchState()。當屏幕被初次觸摸時(shí)喚醒主機的中斷,稱(chēng)為PEN_DOWN中斷。這樣做可以讓驅動(dòng)程序在屏幕沒(méi)有被觸摸時(shí)中斷自己的執行,而不消耗任何CPU資源,而一旦用戶(hù)觸摸屏幕,驅動(dòng)程序就被喚醒并進(jìn)入轉換模式。

當被喚醒后就有一組模數數據等待轉換并產(chǎn)生中斷信號。中斷是硬件與軟件打交道的重要方法,所以大多數驅動(dòng)程序都涉及到中斷處理。就中斷處理而言, WinCE采用了一種獨特的方法。它將中斷處理分為兩步:中斷服務(wù)例程(ISR)和中斷服務(wù)線(xiàn)程(IST)。具體來(lái)講就是把每個(gè)硬件的設備中斷請求 (IRQ) 和一個(gè)ISR 聯(lián)系起來(lái),當一個(gè)中斷發(fā)生并未被屏蔽時(shí),內核調用該中斷注冊的ISR。因為ISR 運行于內核模式,所以應該被設計得盡可能的短,ISR 的基本職責是引導內核調度和啟動(dòng)合適的IST。IST 在設備驅動(dòng)程序軟件模塊中編寫(xiě),它從硬件獲取或向硬件發(fā)送數據和控制代碼,并進(jìn)一步處理設備中斷。
WinCE觸摸屏驅動(dòng)程序是采用中斷方式對觸摸筆的按下?tīng)顟B(tài)進(jìn)行檢測,當檢測到觸摸筆按下時(shí)產(chǎn)生的中斷,就會(huì )觸發(fā)一個(gè)事件通知一個(gè)工作線(xiàn)程開(kāi)始采集數據。同時(shí),驅動(dòng)將打開(kāi)一個(gè)硬件定時(shí)器,只要檢測到觸摸筆仍然在按下?tīng)顟B(tài),將定時(shí)觸發(fā)同一個(gè)事件通知這個(gè)工作線(xiàn)程繼續采集數據,直到觸摸筆抬起后關(guān)閉該定時(shí)器。簡(jiǎn)單的說(shuō),就是驅動(dòng)程序會(huì )同時(shí)采用觸摸屏中斷和定時(shí)器中斷這兩個(gè)中斷源。目的在于不僅可以監控觸摸筆按下和抬起狀態(tài),而且可以檢測觸摸筆按下時(shí)的拖動(dòng)軌跡。觸摸屏中斷的兩個(gè)邏輯中斷分別是:SYSINTR_TOUCH是用于觸摸筆點(diǎn)擊觸摸屏時(shí)產(chǎn)生相應的中斷;SYSINTR_TOUCH_CHANGE 則用于觸摸筆離開(kāi)時(shí)產(chǎn)生相應的中斷。

電容式觸摸屏相關(guān)文章:電容式觸摸屏原理


關(guān)鍵詞: 觸摸屏 驅動(dòng)程序

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>