色另类_婷婷激情四月_亚洲精品无码不卡在线播放he_欧美第七页_精品国产综合区久久久久99_青娱乐极品盛宴在线

產(chǎn)品分類

當前位置: 首頁 > 工業(yè)控制產(chǎn)品 > 自動化控制 > 工業(yè)觸摸屏

類型分類:
科普知識
數(shù)據(jù)分類:
工業(yè)觸摸屏

觸摸屏驅(qū)動實現(xiàn)

發(fā)布日期:2022-10-09 點擊率:98

    嵌入式設(shè)備觸摸屏按其技術(shù)原理可分為五類:矢量壓力傳感式、電阻式、電容式、紅外線式和表面聲波式。其中電阻式觸摸屏在嵌入式系統(tǒng)中用的較多,電阻式觸摸屏可分為四線、五線、七線等幾種。一般來說,WinCE觸摸屏驅(qū)動的設(shè)計和實現(xiàn)有以下幾個步驟:

    (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)軟件上的控制。 同時,在初始化時還需要進行這幾個配置和初始化:一是創(chuàng)建事件hTouchPanelEvent和 hCalibrationSampleAvailable,前者是在正常狀態(tài)下當有觸摸筆按下或者按下后需要定時采集數(shù)據(jù)時被觸發(fā);而后者是在校準狀態(tài)下當有校準數(shù)據(jù)輸入時被觸發(fā)。二是檢查初始化所需的中斷gIntrTouch(觸摸屏中斷)和gIntrTouchChanged(定時器中斷),并將這兩個中斷關(guān)聯(lián)到事件hTouchPanelEvent。三是創(chuàng)建一個ISR線程TouchPanelpISR,用于等待和處理觸摸屏事件hTouchPanelEvent,它也是整個驅(qū)動程序中唯一的事件源。

    (2)校準觸摸屏基準參數(shù)

    完成前面繁瑣的工作后,驅(qū)動程序的各種功能就都已經(jīng)準備就緒了,現(xiàn)在就可以實際操作觸摸屏幕了。但一般來說,電阻式觸摸屏需要校準,也就是說在驅(qū)動啟動過程中MDD層要調(diào)用相應(yīng)的DDSI函數(shù)來讀取注冊表中的校正數(shù)據(jù)校正觸摸屏。理想情況下,校準程序只要在嵌入式設(shè)備初次加電測試過程中運行一次就可以了,參考值會被存儲在非易失性存儲器中,以免讓用戶在以后的加電啟動期間再做校準。不過,高質(zhì)量的觸摸屏驅(qū)動程序是應(yīng)該要向用戶提供一種進入校準例程的途徑,從而在由于溫度漂移或其它因素造成校準不準確時進行重新校準。 在理想情況下,校正觸摸屏基準只需兩組原始數(shù)據(jù),即在屏幕對角讀取的最小和最大值。但在實際應(yīng)用中,因為許多電阻式觸摸屏存在明顯的非線性,如果只在最小和最大值之間簡單的插入位置數(shù)值會導(dǎo)致驅(qū)動程序非常的不精確。因此,在WinCE中需要獲取多個校準點,常用的校準點數(shù)量為5個。

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

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

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

    當被喚醒后就有一組模數(shù)數(shù)據(jù)等待轉(zhuǎn)換并產(chǎn)生中斷信號。中斷是硬件與軟件打交道的重要方法,所以大多數(shù)驅(qū)動程序都涉及到中斷處理。就中斷處理而言, WinCE采用了一種獨特的方法。它將中斷處理分為兩步:中斷服務(wù)例程(ISR)和中斷服務(wù)線程(IST)。具體來講就是把每個硬件的設(shè)備中斷請求 (IRQ) 和一個ISR 聯(lián)系起來,當一個中斷發(fā)生并未被屏蔽時,內(nèi)核調(diào)用該中斷注冊的ISR。因為ISR 運行于內(nèi)核模式,所以應(yīng)該被設(shè)計得盡可能的短,ISR 的基本職責是引導(dǎo)內(nèi)核調(diào)度和啟動合適的IST。IST 在設(shè)備驅(qū)動程序軟件模塊中編寫,它從硬件獲取或向硬件發(fā)送數(shù)據(jù)和控制代碼,并進一步處理設(shè)備中斷。

    WinCE觸摸屏驅(qū)動程序是采用中斷方式對觸摸筆的按下狀態(tài)進行檢測,當檢測到觸摸筆按下時產(chǎn)生的中斷,就會觸發(fā)一個事件通知一個工作線程開始采集數(shù)據(jù)。同時,驅(qū)動將打開一個硬件定時器,只要檢測到觸摸筆仍然在按下狀態(tài),將定時觸發(fā)同一個事件通知這個工作線程繼續(xù)采集數(shù)據(jù),直到觸摸筆抬起后關(guān)閉該定時器。簡單的說,就是驅(qū)動程序會同時采用觸摸屏中斷和定時器中斷這兩個中斷源。目的在于不僅可以監(jiān)控觸摸筆按下和抬起狀態(tài),而且可以檢測觸摸筆按下時的拖動軌跡。觸摸屏中斷的兩個邏輯中斷分別是:SYSINTR_TOUCH是用于觸摸筆點擊觸摸屏?xí)r產(chǎn)生相應(yīng)的中斷;SYSINTR_TOUCH_CHANGE 則用于觸摸筆離開時產(chǎn)生相應(yīng)的中斷。

    在理想情況下,校正觸摸屏基準只需兩組原始數(shù)據(jù),即在屏幕對角讀取的最小和最大值。但在實際應(yīng)用中,因為許多電阻式觸摸屏存在明顯的非線性,如果只在最小和最大值之間簡單的插入位置數(shù)值會導(dǎo)致驅(qū)動程序非常的不精確。因此,在WinCE中需要獲取多個校準點,常用的校準點數(shù)量為5個。

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


下一篇: PLC、DCS、FCS三大控

上一篇: 從硬件軟件組成模式出

主站蜘蛛池模板: 久久99精品久久久久久秒播 | 国产一码二码免费观看 | 日韩一区免费在线观看 | 成人超碰| 国产 日韩 欧美 高清 | 国产精品麻豆视频 | www.日日操| 九九香蕉视频 | 五月天婷婷免费观看视频在线 | 亚洲欧美另类色妞网站 | 国产精品福利视频免费观看 | 九九99热久久精品在线9 | 久久国产精品超级碰碰热 | 日本天堂免费a | 91蝌蚪在线播放 | 日韩高清中文字幕 | 日日夜夜免费精品视频 | 国产精品一区二区三区免费 | 亚洲午夜电影 | 久草影视网| 国产精品尤物在线 | 额去鲁97在线观看视频 | 色综合色综合色综合色综合 | 很黄很粗很湿很刺激的视频 | 日韩成人免费av | 青娱乐久草 | 欧美一区二 | 婷婷在线五月 | 国产精品久久av | 久久综合狠狠综合狠狠 | h网站国产| 日韩高清不卡 | 波多野结衣综合 | 日本精品a在线 | 免费国产一区 | 9999久久 | 国内精品久久久久尤物 | 狠狠躁夜夜躁人人爽天天段 | 久久爱伊人 | 国产婷婷精品av在线 | 国产精品1区2区3区 二区国产 |