日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式硬件
[導(dǎo)讀]觸摸屏驅(qū)動(dòng)程序的設(shè)計(jì)和實(shí)現(xiàn)嵌入式設(shè)備觸摸屏按其技術(shù)原理可分為五類:矢量壓力傳感式、電阻式、電容式、紅外線式和表面聲波式。其中電阻式觸摸屏在嵌入式系統(tǒng)中用的較多,

觸摸屏驅(qū)動(dòng)程序的設(shè)計(jì)和實(shí)現(xiàn)

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

(1)配置和初始化觸摸屏

觸摸屏驅(qū)動(dòng)在初始化過程會(huì)調(diào)用TouchPanelEnable函數(shù),該函數(shù)調(diào)用的DDSI函數(shù)為DdsiTouchPanelEnable和 DdsiTouchPanelDisable。這兩個(gè)DDSI接口函數(shù)是驅(qū)動(dòng)實(shí)現(xiàn)的關(guān)鍵所在,分別用于打開和關(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í)際操作觸摸屏幕了。但一般來說,電阻式觸摸屏需要校準(zhǔn),也就是說在驅(qū)動(dòng)啟動(dòng)過程中MDD層要調(diào)用相應(yīng)的DDSI函數(shù)來讀取注冊表中的校正數(shù)據(jù)校正觸摸屏。理想情況下,校準(zhǔn)程序只要在嵌入式設(shè)備初次加電測試過程中運(yùn)行一次就可以了,參考值會(huì)被存儲(chǔ)在非易失性存儲(chǔ)器中,以免讓用戶在以后的加電啟動(dòng)期間再做校準(zhǔn)。不過,高質(zhì)量的觸摸屏驅(qū)動(dòng)程序是應(yīng)該要向用戶提供一種進(jìn)入校準(zhǔn)例程的途徑,從而在由于溫度漂移或其它因素造成校準(zhǔn)不準(zhǔn)確時(shí)進(jìn)行重新校準(zhǔn)。

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

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

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

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

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

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

(4)獲得穩(wěn)定的、去抖動(dòng)的測量數(shù)據(jù)

在進(jìn)行觸摸屏程序開發(fā)時(shí),一定要注意原始的觸摸測量數(shù)據(jù)經(jīng)常會(huì)有一些噪聲和偏差,這是正常的。一般來說,只有用戶緊緊壓住電阻觸摸屏才能得到兩個(gè)連續(xù)的讀數(shù),然而我們會(huì)發(fā)現(xiàn)當(dāng)觸控筆或手指按上或離開觸摸屏?xí)r,讀數(shù)的變化要比保持穩(wěn)定壓力時(shí)大得多。這是因?yàn)橛脩羰且詸C(jī)械的方式連通二個(gè)平面電阻-觸摸層,當(dāng)用戶按壓和釋放觸摸屏?xí)r,在很短的一段時(shí)間內(nèi)觸摸屏的電氣連接均處于臨界狀態(tài)。這時(shí),我們需要丟棄這些讀數(shù)直到系統(tǒng)穩(wěn)定下來,否則提交的觸摸位置讀數(shù)會(huì)產(chǎn)生大幅跳躍,導(dǎo)致嚴(yán)重的失真或觸摸位置漂移。

這時(shí)就需要進(jìn)行折衷考慮,這也是觸摸屏驅(qū)動(dòng)設(shè)計(jì)的關(guān)鍵所在。如果我們要求較窄的穩(wěn)定窗口,那么驅(qū)動(dòng)程序?qū)o法跟蹤快速的“拖曳”操作;如果加寬穩(wěn)定窗口,就可能面臨著許多風(fēng)險(xiǎn),這些風(fēng)險(xiǎn)包括接收到不精確的觸摸數(shù)據(jù),或上面描述處于臨界狀態(tài)的層連接結(jié)果。這時(shí),就需要通過實(shí)驗(yàn)來確定適合系統(tǒng)的最佳值。

在正常情況下,當(dāng)屏幕被觸摸時(shí)驅(qū)動(dòng)程序應(yīng)會(huì)得到每個(gè)穩(wěn)定的讀數(shù),并利用簡單的線性插值法將原始數(shù)據(jù)轉(zhuǎn)換成像素坐標(biāo)。讀取觸摸點(diǎn)的坐標(biāo)是由DdsiTouchPanalGetPoint()函數(shù)實(shí)現(xiàn)的。另外,在每個(gè)轉(zhuǎn)換過程的前后,驅(qū)動(dòng)程序必須檢查并確認(rèn)屏幕仍處于被觸摸狀態(tài)。因?yàn)槲覀儾幌M杉綄?shí)際上是處于“開路狀態(tài)”的穩(wěn)定讀數(shù)。因此,在讀取觸摸數(shù)據(jù)時(shí),我們需要對(duì)原始數(shù)據(jù)進(jìn)行去抖動(dòng)處理,然后確定屏幕被觸摸時(shí)是否有穩(wěn)定的讀數(shù);如果不穩(wěn)定就要繼續(xù)讀取數(shù)據(jù)并進(jìn)行去抖動(dòng)處理,直到得到穩(wěn)定的數(shù)據(jù)為止。[!--empirenews.page--]

最后,觸摸屏驅(qū)動(dòng)程序應(yīng)將觸摸狀態(tài)和位置變化信息發(fā)送給更高層的應(yīng)用軟件,以完成一次完整的觸摸操作。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動(dòng)電源

在工業(yè)自動(dòng)化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動(dòng)力設(shè)備,其驅(qū)動(dòng)電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動(dòng)勢抑制與過流保護(hù)是驅(qū)動(dòng)電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動(dòng)性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動(dòng)電源

LED 驅(qū)動(dòng)電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動(dòng)電源易損壞的問題卻十分常見,不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動(dòng)電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動(dòng)電源的公式,電感內(nèi)電流波動(dòng)大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動(dòng)電源

電動(dòng)汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動(dòng)汽車的核心技術(shù)之一是電機(jī)驅(qū)動(dòng)控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動(dòng)系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動(dòng)汽車的動(dòng)力性能和...

關(guān)鍵字: 電動(dòng)汽車 新能源 驅(qū)動(dòng)電源

在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動(dòng)電源 LED

LED通用照明設(shè)計(jì)工程師會(huì)遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動(dòng)電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動(dòng)電源的電磁干擾(EMI)問題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會(huì)影響LED燈具的正常工作,還可能對(duì)周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動(dòng)電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動(dòng)電源

關(guān)鍵字: LED 驅(qū)動(dòng)電源 開關(guān)電源

LED驅(qū)動(dòng)電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動(dòng)LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動(dòng)電源
關(guān)閉