觸摸屏驅動實現步驟分析
發布時間:2012-01-27
中心議題:
- 配置和初始化觸摸屏
- 校準觸摸屏基準參數
- 判斷屏幕是否被觸摸
嵌入式設備觸摸屏按其技術原理可分為五類:矢量壓力傳感式、電阻式、電容式、紅外線式和表麵聲波式。其中電阻式觸摸屏在嵌入式係統中用的較多,電阻式觸摸屏可分為四線、五線、七線等幾種。一般來說,WinCE觸摸屏驅動的設計和實現有以下幾個步驟:
(1)配置和初始化觸摸屏
觸摸屏驅動在初始化過程會調用TouchPanelEnable函數,該函數調用的DDSI函數為DdsiTouchPanelEnable和 DdsiTouchPanelDisable。這兩個DDSIjiekouhanshushiqudongshixiandeguanjiansuozai,fenbieyongyudakaiheguanbichumopingyingjian。danshiweilejiangdigonghao,zhelianggehanshuqishikeyibuzhenzhengcaozuoyingjian,erzhishishixianruanjianshangdekongzhi。 同時,在初始化時還需要進行這幾個配置和初始化:一是創建事件hTouchPanelEvent和 hCalibrationSampleAvailable,前者是在正常狀態下當有觸摸筆按下或者按下後需要定時采集數據時被觸發;而後者是在校準狀態下當有校準數據輸入時被觸發。二是檢查初始化所需的中斷gIntrTouch(觸摸屏中斷)和gIntrTouchChanged(定時器中斷),並將這兩個中斷關聯到事件hTouchPanelEvent。三是創建一個ISR線程TouchPanelpISR,用於等待和處理觸摸屏事件 hTouchPanelEvent,它也是整個驅動程序中唯一的事件源。
(2)校準觸摸屏基準參數
完(wan)成(cheng)前(qian)麵(mian)繁(fan)瑣(suo)的(de)工(gong)作(zuo)後(hou),驅(qu)動(dong)程(cheng)序(xu)的(de)各(ge)種(zhong)功(gong)能(neng)就(jiu)都(dou)已(yi)經(jing)準(zhun)備(bei)就(jiu)緒(xu)了(le),現(xian)在(zai)就(jiu)可(ke)以(yi)實(shi)際(ji)操(cao)作(zuo)觸(chu)摸(mo)屏(ping)幕(mu)了(le)。但(dan)一(yi)般(ban)來(lai)說(shuo),電(dian)阻(zu)式(shi)觸(chu)摸(mo)屏(ping)需(xu)要(yao)校(xiao)準(zhun),也(ye)就(jiu)是(shi)說(shuo)在(zai)驅(qu)動(dong)啟(qi)動(dong)過(guo)程(cheng)中(zhong)MDD層要調用相應的DDSI函han數shu來lai讀du取qu注zhu冊ce表biao中zhong的de校xiao正zheng數shu據ju校xiao正zheng觸chu摸mo屏ping。理li想xiang情qing況kuang下xia,校xiao準zhun程cheng序xu隻zhi要yao在zai嵌qian入ru式shi設she備bei初chu次ci加jia電dian測ce試shi過guo程cheng中zhong運yun行xing一yi次ci就jiu可ke以yi了le,參can考kao值zhi會hui被bei存cun儲chu在zai非fei易yi失shi性xing存cun儲chu器qi中zhong,以yi免mian讓rang用yong戶hu在zai以yi後hou的de加jia電dian啟qi動dong期qi間jian再zai做zuo校xiao準zhun。不bu過guo,高gao質zhi量liang的de觸chu摸mo屏ping驅qu動dong程cheng序xu是shi應ying該gai要yao向xiang用yong戶hu提ti供gong一yi種zhong進jin入ru校xiao準zhun例li程cheng的de途tu徑jing,從cong而er在zai由you於yu溫wen度du漂piao移yi或huo其qi它ta因yin素su造zao成cheng校xiao準zhun不bu準zhun確que時shi進jin行xing重zhong新xin校xiao準zhun。 在(zai)理(li)想(xiang)情(qing)況(kuang)下(xia),校(xiao)正(zheng)觸(chu)摸(mo)屏(ping)基(ji)準(zhun)隻(zhi)需(xu)兩(liang)組(zu)原(yuan)始(shi)數(shu)據(ju),即(ji)在(zai)屏(ping)幕(mu)對(dui)角(jiao)讀(du)取(qu)的(de)最(zui)小(xiao)和(he)最(zui)大(da)值(zhi)。但(dan)在(zai)實(shi)際(ji)應(ying)用(yong)中(zhong),因(yin)為(wei)許(xu)多(duo)電(dian)阻(zu)式(shi)觸(chu)摸(mo)屏(ping)存(cun)在(zai)明(ming)顯(xian)的(de)非(fei)線(xian)性(xing),如(ru)果(guo)隻(zhi)在(zai)最(zui)小(xiao)和(he)最(zui)大(da)值(zhi)之(zhi)間(jian)簡(jian)單(dan)的(de)插(cha)入(ru)位(wei)置(zhi)數(shu)值(zhi)會(hui)導(dao)致(zhi)驅(qu)動(dong)程(cheng)序(xu)非(fei)常(chang)的(de)不(bu)精(jing)確(que)。因(yin)此(ci),在(zai)WinCE中需要獲取多個校準點,常用的校準點數量為5個。
方法是:
①首先驅動程序在函數DdsiTouchPanelGetDeviceCaps 中設置校準點的個數;
②是係統在 TouchDriverCalibrationPointGet中獲取每個校準點的屏幕坐標;
③是在屏幕界麵的校準點坐標處顯示一個位置符號,用戶需要精確地在位置符號按下觸摸屏;
④驅動程序通過TouchPanelReadCalibrationPoint函數讀取相應的觸摸屏坐標值;
⑤然後再開始下一個校準點,直到循環設定的次數後將采集到的觸摸屏坐標值和校準點屏幕坐標送到TouchPanelSetCalibration函數中進行處理,該函數將產生校準基準參數。校準完成之後,觸摸屏便可以開始正常的操作了。
(3)判斷屏幕是否被觸摸
一旦完成了觸摸屏硬件設置、初始化和基準參數校準後,接下來就需要用一種可靠的方法來判斷屏幕是否被觸摸了。WinCE提供了屏幕是否被觸摸的檢測機製,而且當觸摸事件發生時還可選擇是否中斷主處理器。判斷屏幕是否被觸摸的驅動程序的函數名叫WaitForTouchState()。當屏幕被初次觸摸時喚醒主機的中斷,稱為PEN_DOWN中斷。這樣做可以讓驅動程序在屏幕沒有被觸摸時中斷自己的執行,而不消耗任何CPU資源,而一旦用戶觸摸屏幕,驅動程序就被喚醒並進入轉換模式。
當dang被bei喚huan醒xing後hou就jiu有you一yi組zu模mo數shu數shu據ju等deng待dai轉zhuan換huan並bing產chan生sheng中zhong斷duan信xin號hao。中zhong斷duan是shi硬ying件jian與yu軟ruan件jian打da交jiao道dao的de重zhong要yao方fang法fa,所suo以yi大da多duo數shu驅qu動dong程cheng序xu都dou涉she及ji到dao中zhong斷duan處chu理li。就jiu中zhong斷duan處chu理li而er言yan, WinCE采用了一種獨特的方法。它將中斷處理分為兩步:中斷服務例程(ISR)和中斷服務線程(IST)。具體來講就是把每個硬件的設備中斷請求 (IRQ) 和一個ISR 聯係起來,當一個中斷發生並未被屏蔽時,內核調用該中斷注冊的ISR。因為ISR 運行於內核模式,所以應該被設計得盡可能的短,ISR 的基本職責是引導內核調度和啟動合適的IST。IST 在設備驅動程序軟件模塊中編寫,它從硬件獲取或向硬件發送數據和控製代碼,並進一步處理設備中斷。
WinCE觸chu摸mo屏ping驅qu動dong程cheng序xu是shi采cai用yong中zhong斷duan方fang式shi對dui觸chu摸mo筆bi的de按an下xia狀zhuang態tai進jin行xing檢jian測ce,當dang檢jian測ce到dao觸chu摸mo筆bi按an下xia時shi產chan生sheng的de中zhong斷duan,就jiu會hui觸chu發fa一yi個ge事shi件jian通tong知zhi一yi個ge工gong作zuo線xian程cheng開kai始shi采cai集ji數shu據ju。同tong時shi,驅qu動dong將jiang打da開kai一yi個ge硬ying件jian定ding時shi器qi,隻zhi要yao檢jian測ce到dao觸chu摸mo筆bi仍reng然ran在zai按an下xia狀zhuang態tai,將jiang定ding時shi觸chu發fa同tong一yi個ge事shi件jian通tong知zhi這zhe個ge工gong作zuo線xian程cheng繼ji續xu采cai集ji數shu據ju,直zhi到dao觸chu摸mo筆bi抬tai起qi後hou關guan閉bi該gai定ding時shi器qi。簡jian單dan的de說shuo,就jiu是shi驅qu動dong程cheng序xu會hui同tong時shi采cai用yong觸chu摸mo屏ping中zhong斷duan和he定ding時shi器qi中zhong斷duan這zhe兩liang個ge中zhong斷duan源yuan。目mu的de在zai於yu不bu僅jin可ke以yi監jian控kong觸chu摸mo筆bi按an下xia和he抬tai起qi狀zhuang態tai,而er且qie可ke以yi檢jian測ce觸chu摸mo筆bi按an下xia時shi的de拖tuo動dong軌gui跡ji。觸chu摸mo屏ping中zhong斷duan的de兩liang個ge邏luo輯ji中zhong斷duan分fen別bie是shi:SYSINTR_TOUCH是用於觸摸筆點擊觸摸屏時產生相應的中斷;SYSINTR_TOUCH_CHANGE 則用於觸摸筆離開時產生相應的中斷。
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
- 三星上演罕見對峙:工會集會討薪,股東隔街抗議
- 摩爾線程實現DeepSeek-V4“Day-0”支持,國產GPU適配再提速
- 築牢安全防線:智能駕駛邁向規模化應用的關鍵挑戰與破局之道
- GPT-Image 2:99%文字準確率,AI生圖告別“鬼畫符”
- 機器人馬拉鬆的勝負手:藏在主板角落裏的“時鍾戰爭”
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall

