久久99爰这里有精品国产-久久99这里只有精品国产-久久99中文字幕-久久99中文字幕久久-国产福利免费观看-国产福利免费视频


曙海教育集團論壇Win CE 專區(qū)WinCE系統(tǒng)定制與驅(qū)動開發(fā) → WinCE中觸摸屏驅(qū)動開發(fā)詳解


  共有9914人關(guān)注過本帖樹形打印

主題:WinCE中觸摸屏驅(qū)動開發(fā)詳解

美女呀,離線,留言給我吧!
wangxinxin
  1樓 個性首頁 | 博客 | 信息 | 搜索 | 郵箱 | 主頁 | UC


加好友 發(fā)短信
等級:青蜂俠 帖子:1393 積分:14038 威望:0 精華:0 注冊:2010-11-12 11:08:23
WinCE中觸摸屏驅(qū)動開發(fā)詳解  發(fā)帖心情 Post By:2010-11-26 10:59:31

1.觸摸屏驅(qū)動程序的模型

1.1 分層觸摸屏驅(qū)動層序結(jié)構(gòu)

本觸摸屏驅(qū)動采用分層驅(qū)動程序結(jié)構(gòu),其驅(qū)動模型如下圖所示,這種結(jié)構(gòu)將驅(qū)動程序代碼區(qū)分為上層模型設(shè)備驅(qū)動層(MDD),下層是依賴平臺的驅(qū)動層(PDD)。其中MDD層通常無需修改就可以直接使用,改部分提供面向GWES的DDI的接口,而MDD通過指定的DDSI函數(shù)接口調(diào)用PDD,這就是我們通常驅(qū)動要實現(xiàn)的部分。PDD部分和MDD部分除了DDSI函數(shù)集接口外,還要實現(xiàn)一些指定的變量的定義或變量初始化動作(比如,gIntrTouch和gIntrTouchChanged在PDD層定義,但主要在MDD層使用。),也就是說MDD層和PDD層之間并不一定是以嚴格的分層模型來實現(xiàn)的,有時候也要通過共享變量的方式來完成交互。

1.2 DDI函數(shù)集(MDD層)

TouchPanelPowerHandler(BOOL boff)

Touch Screen的電源管理函數(shù),boff:TRUE表示關(guān)閉電源,F(xiàn)ALSE表示打開電源,其只是調(diào)用DdsiTouchPanelPowerHandler()函數(shù),該函數(shù)在進入或退出poweroff狀態(tài)時產(chǎn)生。

TouchPanelCalibrationAPoint()

該函數(shù)用于校準輸入的觸摸屏坐標,把觸摸屏坐標轉(zhuǎn)換為顯示坐標,利用了公式Sx=A1*Tx+B1*Ty+C和Sy=A2*Tx+B2*Ty+C2。

TouchPanelReadCalibrationPoint()

在執(zhí)行觸摸屏校準程序時,用這個函數(shù)獲得在當前校準點的十字形上點擊的觸摸屏坐標。

TouchPanelReadCalibrationAbord()

該函數(shù)在校準取消時被調(diào)用(在觸摸屏校準程序運行過程中取消校準),僅僅設(shè)置狀態(tài)位和事件后返回。

TouchPanelDisable()

禁用觸摸屏(touch panel)設(shè)備,該函數(shù)關(guān)閉ISR,停止中斷和注銷事件及其他同步手段,此函數(shù)調(diào)用了DdsiTouchPanelDisable()函數(shù)。

TouchPanelEnable(PFN_TOUCH_PANEL_CALLBACK    pfnCallback)

PfnCallback是指向處理touch panel事件的回調(diào)函數(shù),該函數(shù)的執(zhí)行動作:

⑴創(chuàng)建事件hTouchPanelEvent和hCalibrationSampleAvailable,其中當觸筆按下或抬起,或者定時器中斷時會觸發(fā)hTouchPanelEvent事件,而在校準狀態(tài)下當有校準數(shù)據(jù)輸入時會觸發(fā)hCalibrationSampleAvailable事件。

⑵初始化臨界區(qū),初始化所需的觸摸屏中斷gIntrTouch和gIntrTouchChanged,并且把它們關(guān)聯(lián)到事件hTouchPanelEvent中。

⑶創(chuàng)建IST TouchPanelpISR,并設(shè)定其優(yōu)先級。

TouchPanelSetCalibration()

該函數(shù)通過運行觸摸屏校準程序時的校準動作獲得顯示坐標(Sx,Sy)和觸筆在十字形上按下的觸摸坐標(Tx,Ty)用于計算校準參數(shù)A1,B1,C1和A2,B2,C2。

TouchPanelGetDeviceCaps()

用于查詢觸摸屏設(shè)備支持的具體功能,通過DDSI函數(shù)查詢相應(yīng)的信息,當查詢屏幕坐標信息時保存屏幕信息,供后面程序計算校準參數(shù)所用。

TouchPanelSetMode()

用于設(shè)置觸摸屏的工作模式(采用低采樣率還是高采樣率),當設(shè)置IST優(yōu)先級時直接通過內(nèi)核API來完成,而直接將其他設(shè)置交給DdsiTouchPanelSetMode()函數(shù)來處理。

1.3WinCE  DDSI函數(shù)集(PDD層)

DdsiTouchPanelGetDeviceCaps(INT iIndex, LPVOID lpOutput)

查詢touch panel設(shè)備的相關(guān)信息。

IIndex:查詢的索引值,其取值如下:

TPDC_SAMPLE_RATE_ID:查詢采樣率信息。

TPDC_CALIBRATION_POINT_COUNT_ID:查詢用于校驗的點的個數(shù)。

TPDC_CALIBRATION_POINT_ID:查詢需要校驗的點的坐標。

LpOutput:根據(jù)iIndex值分別指向相關(guān)的信息。

DdsiTouchPanelSetMode()

設(shè)置Touch Panel工作模式。

iIndex:模式索引

TPSM_SAMPLERATE_HIGH_ID:高采樣率

TPSM_SAMPLERATE_LOW_ID:低采樣率

lpInput:指向包含相關(guān)信息的內(nèi)存

DdsiTouchPanelEnable()

該函數(shù)所執(zhí)行的動作:

⑴為需要用到的I/O,ADC,PWM和INT寄存器分配內(nèi)存空間。

⑵配置觸摸屏控制器、中斷控制器和PWM的寄存器。

⑶申請觸摸屏中斷gIntrTouch和定時器中斷gIntrTouchChanged,并且對它們進行初始化,為物理中斷號分配相應(yīng)的系統(tǒng)邏輯中斷號。。

DdsiTouchPanelDisable()

屏蔽觸摸屏中斷和釋放為I/O,ADC,PWM和INT寄存器分配的WinCE內(nèi)存空間。

DdsiTouchPanelAttach()

只是簡單地返回1。

DdsiTouchPanelDetach()

只是簡單地返回0。

DdsiTouchPanelGetPoint (TOUCH_PANEL_SAMPLE_FLAGS * pTipStateFlags,

                       INT * pUncalX,

                       INT * pUncalY )

獲得Touch Panel上被按下的點的狀態(tài)和坐標。

◆pTipState:當前觸摸點的狀態(tài),比如無效點,有效點,被按下的點等。

◆pUnCalX:觸摸點的X坐標

◆pUnCalY:觸摸點的Y坐標

◆DdsiTouchPanelPowerHandler()

設(shè)置touch panel的電源狀態(tài),boff:TRUE表示關(guān)閉電源,F(xiàn)ALSE表示打開電源,

2.觸摸屏驅(qū)動程序的實現(xiàn)

Windows CE5.0觸摸屏驅(qū)動程序采用中斷方式對觸摸筆的按下狀態(tài)進行檢測,如果檢測到觸摸筆按下將產(chǎn)生中斷并觸發(fā)一個事件通知一個工作線程開始采集數(shù)據(jù)。同時,驅(qū)動將打開一個硬件定時器,只要檢測到觸摸筆仍然在按下狀態(tài)將定時觸發(fā)同一個事件通知工作線程采集數(shù)據(jù),直到觸摸筆抬起后關(guān)閉該定時器,并重新檢測按下狀態(tài)。驅(qū)動中采用了觸摸屏中斷以及定時器中斷2個中斷源,不僅可以監(jiān)控觸摸筆按下和抬起狀態(tài),而且可以檢測觸摸筆按下時的拖動軌跡。觸摸屏驅(qū)動流程下圖所示

3.四線電阻式觸摸屏的工作原理

四線電阻式觸摸屏的結(jié)構(gòu)如圖1,在玻璃或丙烯酸基板上覆蓋有兩層透平,均勻?qū)щ姷腎TO層,分別做為X電極和Y電極,它們之間由均勻排列的透明格 點分開絕緣。其中下層的ITO與玻璃基板附著,上層的ITO附著在PET薄膜上。X電極和Y電極的正負端由“導(dǎo)電條”(圖中黑色條形部分)分別從兩端引 出,且X電極和Y電極導(dǎo)電條的位置相互垂直。引出端X-,X+,Y-,Y+一共四條線,這就是四線電阻式觸摸屏名稱的由來。當有物體接觸觸摸屏表面并施以 一定的壓力時,上層的ITO導(dǎo)電層發(fā)生形變與下層ITO發(fā)生接觸,該結(jié)構(gòu)可以等效為相應(yīng)的電路,

計算觸點的X,Y坐標分為如下兩步:

1. 計算Y坐標,在Y+電極施加驅(qū)動電壓Vdrive, Y-電極接地,X+做為引出端測量得到接觸點的電壓,由于ITO層均勻?qū)щ姡|點電壓與Vdrive電壓之比等于觸點Y坐標與屏高度之比。

2. 計算X坐標,在X+電極施加驅(qū)動電壓Vdrive, X-電極接地,Y+做為引出端測量得到接觸點的電壓,由于ITO層均勻?qū)щ姡|點電壓與Vdrive電壓之比等于觸點X坐標與屏寬度之比。

測得的電壓由ADC轉(zhuǎn)化為觸摸點的原始坐標(數(shù)值范圍由所選用的A/D轉(zhuǎn)換器位數(shù)決定)后,還要根據(jù)具體使用的液晶屏實際像素進行轉(zhuǎn)換,轉(zhuǎn)換后通過校準直接轉(zhuǎn)化為屏幕上的坐標,供GWES使用。

4.觸摸屏的接口部分

◆X+:連接觸摸屏控制器的TSXP,。

◆X-:連接觸摸屏控制器的TSXM。

◆Y+:連接觸摸屏控制器的TSYP。

◆Y-:連接觸摸屏控制器的TSYM。

在觸摸屏接口使用時,TSXM或TSYM應(yīng)該接觸摸屏接口的。

5.配置控制器硬件

5.1 ADCCON-----ADC控制寄存器

ECFLG:ADCCON[15],AD轉(zhuǎn)換結(jié)束標志,只讀,0表示AD轉(zhuǎn)換在過程中;1表示AD轉(zhuǎn)換結(jié)束。

PRSCEN:ADCCON[14],AD轉(zhuǎn)換器預(yù)分頻器使能,在此使能,故為1。

PRSCVL:ADCCON[13:6],AD轉(zhuǎn)換器預(yù)分頻器值,在此為49。

SEL_MUX:ADCCON[5:3],模擬信號輸入通道選擇,在此選擇XP,故為7。

STDBM:ADCCON[2],備用操作模式選擇,在此選擇普通操作模式,故為0。

READ_START:ADCCON[1],通過讀取來啟動A/D轉(zhuǎn)換,在此選擇通過讀取操作無效來啟動A/D轉(zhuǎn)換,故為0。

ENABLE_START,ADCCON[0],通過使能該位來啟動A/D轉(zhuǎn)換,在此選擇無操作。此位在A/D轉(zhuǎn)換開始后被使能。

5.2 ADCTSC-----ADC觸摸屏控制寄存器

UD_SEN:ADCTSC[8],在此選擇檢測到觸筆按下就產(chǎn)生中斷信號,故為0。

YM_SEN:ADCTSC[7],YM開關(guān)使能,在此選擇YM輸出驅(qū)動有效(GND),故為1。

YP_SEN:ADCTSC[6],YP開關(guān)使能,在此選擇YP輸出驅(qū)動無效(AIN5),故為1。

XM_SEN:ADCTSC[5],XM開關(guān)使能,在此選擇XM輸出驅(qū)動無效(Hi-Z),故為0。

XP_SEN:ADCTSC[4],XP開關(guān)使能,在此選擇XP輸出驅(qū)動無效(AIN7),故為1。

PULL_UP:ADCTSC[3],上拉開關(guān)使能,在此選擇XP上拉有效,故為0。

AUTO_PST:ADCTSC[2],初始化時,在此選擇自動連續(xù)測量X坐標和Y坐標,故為0,但如果開始轉(zhuǎn)換時,應(yīng)該置1。

XY_PST:ADCTSC[1:0],手動測量X坐標和Y坐標,在此選擇等待中斷模式,故為3。

注:當?shù)却|摸屏中斷時,XP_SEN位(XP輸出無效)應(yīng)該置為1,且PULL_UP(XP上拉使能)位應(yīng)該置為0。

5.3 ADCDLY-----ADC開始延時寄存器

DELAY:ADCDLY[154:0],因為選擇等待中斷模式,此值表示,當觸筆按下出現(xiàn)在睡眠模式時,產(chǎn)生一個用于推出睡眠模式的信號,有幾個毫秒的時間間隔。在此此值為40000?????????(40s,太長了吧?)

SUBINTMSK-----WinCE中子中斷屏蔽寄存器

該寄存器有11位,每位和一位中斷源相關(guān)。觸摸屏中斷請求有效,故第十位應(yīng)設(shè)為0。

v_pINTregs->INTSUBMSK &= ~(1<<IRQ_SUB_TC);

5.4 TCFG1-----5路多路器及DMA模式選擇寄存器

MUX3:TCFG1[15:12],為PWM計時器3選擇多路輸入,并初始化其值,每個定時器都有一個時鐘分頻器,其可以生成5鐘不同的分頻信號(1/2,1/4,1/8,1/16和TCLK),在此選擇1/16分頻。

v_pPWMregs->TCFG1 &= ~(0xf << 12); /* Timer3's Divider Value   */

v_pPWMregs->TCFG1 |= (3   << 12);     /* 1/16   

TCNTB3-----PWM定時器3計數(shù)緩存寄存器,選擇定時器3為時鐘,比如定義10ms中斷一次,提供觸摸屏采樣時間基準,即10ms觸摸屏采樣一次。在此為17×1000/100=170,在此PCLK=400MHz/6,可以得出timer3的時鐘頻率=PCLK/(244+1).16,可以算數(shù)觸摸屏就是10ms產(chǎn)生一次定時中斷,進行一次采樣


支持(0中立(0反對(0單帖管理 | 引用 | 回復(fù) 回到頂部

返回版面帖子列表

WinCE中觸摸屏驅(qū)動開發(fā)詳解








簽名
成人免费观看的视频黄页| 色综合久久天天综线观看| 成人免费一级毛片在线播放视频| 久久99爰这里有精品国产| 午夜在线亚洲男人午在线| 成人免费网站视频ww| 黄视频网站在线免费观看| 日韩欧美一及在线播放| 欧美一区二区三区性| 欧美另类videosbestsex久久| 日韩中文字幕在线观看视频| 国产91精品一区二区| 九九精品影院| 一级女性全黄生活片免费| 国产一区二区精品久久91| 亚洲女人国产香蕉久久精品 | 国产网站麻豆精品视频| 99色吧| 深夜做爰性大片中文| 欧美电影免费| 欧美激情一区二区三区视频| 可以免费看污视频的网站| 欧美大片a一级毛片视频| 二级片在线观看| 欧美国产日韩精品| 国产麻豆精品| 国产精品1024永久免费视频 | 久久国产影院| 午夜欧美成人久久久久久| 久久精品免视看国产明星| 日韩av片免费播放| 成人免费观看网欧美片| 欧美大片a一级毛片视频| 欧美1卡一卡二卡三新区| 日韩女人做爰大片| 国产一区二区精品久久91| 韩国毛片 免费| 免费的黄视频| 欧美激情一区二区三区中文字幕| 四虎论坛| 欧美一区二区三区性| 国产综合成人观看在线| 人人干人人草| 午夜欧美福利| 九九免费高清在线观看视频| 日本免费区| 日韩免费片| 精品国产一区二区三区国产馆| 九九热国产视频| 国产亚洲精品aaa大片| 国产伦精品一区三区视频 | 久久久久久久网| 国产一区二区精品久久91| 成人免费高清视频| 久久成人性色生活片| 国产不卡在线播放| 欧美a级v片不卡在线观看| 九九免费高清在线观看视频| 成人免费网站久久久| 久久99中文字幕| 精品视频在线观看一区二区三区| 天天色成人| 天天色色网| 91麻豆tv| 国产精品自拍亚洲| 国产伦精品一区二区三区在线观看| 成人免费观看网欧美片| 毛片高清| 国产91精品一区二区| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 午夜在线观看视频免费 成人| 国产一区免费观看| 久久久成人网| 在线观看导航| 97视频免费在线| 色综合久久天天综合绕观看| 韩国毛片免费| 欧美激情一区二区三区中文字幕| 九九精品久久| 国产成人啪精品| 中文字幕Aⅴ资源网| 色综合久久手机在线| 999久久66久6只有精品| 一a一级片| 九九九在线视频| 中文字幕一区二区三区精彩视频 | 午夜欧美福利| 久久国产精品只做精品| 国产91视频网| 亚洲天堂一区二区三区四区| 黄视频网站在线观看| 日本伦理片网站| 日本在线不卡免费视频一区| 亚洲www美色| 国产成人精品综合| 欧美日本免费| 韩国三级视频网站| 国产一区二区精品久| 欧美国产日韩一区二区三区| 欧美大片aaaa一级毛片| 精品视频免费看| 亚洲天堂一区二区三区四区| 欧美a级成人淫片免费看| 国产精品自拍在线观看| 午夜在线影院| 日本特黄特色aaa大片免费| 亚洲天堂在线播放| 欧美18性精品| 日韩中文字幕一区| 日韩男人天堂| 中文字幕97| 国产美女在线观看| 国产成人啪精品| 精品视频一区二区三区| 中文字幕97| 韩国毛片免费大片| 四虎影视久久| 日韩专区在线播放| 久久国产精品自由自在| 国产亚洲免费观看| 在线观看导航| 91麻豆tv| 亚洲精品影院一区二区| 欧美激情影院| 一级女性全黄久久生活片| 国产麻豆精品hdvideoss| 四虎影视久久久免费| 天天做日日爱| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 欧美激情中文字幕一区二区| 国产成人精品综合在线| 91麻豆tv| 91麻豆精品国产自产在线观看一区 | 国产福利免费视频| 尤物视频网站在线观看| 日韩在线观看免费| 欧美另类videosbestsex视频| 国产麻豆精品hdvideoss| 精品国产亚一区二区三区| 国产福利免费观看| 精品视频在线观看一区二区三区| 99色视频在线| 久久久成人网| 国产美女在线一区二区三区| 国产亚洲男人的天堂在线观看| 日韩av成人| 青草国产在线观看| 久久国产精品自由自在| 999精品视频在线| 国产精品123| 国产伦精品一区二区三区无广告| 欧美日本国产| 欧美另类videosbestsex视频| 日本伦理网站| 国产极品白嫩美女在线观看看| 国产伦精品一区二区三区无广告| 国产一区免费在线观看| 精品国产亚一区二区三区| 日韩avdvd| 国产亚洲精品aaa大片| 精品国产一区二区三区久久久蜜臀 | 日韩av成人| 午夜久久网| 欧美另类videosbestsex高清| 日日日夜夜操| 日韩中文字幕在线观看视频| 台湾毛片| 人人干人人草| 999久久久免费精品国产牛牛| 国产国语在线播放视频| 亚洲第一页乱| 日韩一级黄色| 成人高清视频在线观看| 欧美另类videosbestsex| 国产91精品系列在线观看| 99色视频在线观看| 国产视频一区二区在线观看| 韩国三级香港三级日本三级| 午夜在线观看视频免费 成人| 欧美电影免费| 成人免费网站视频ww| 九九久久99综合一区二区| 久久精品店| 国产精品自拍在线观看| 久久成人性色生活片| 九九九国产| 四虎影视精品永久免费网站| 亚洲 男人 天堂| 日韩av片免费播放| 久久99这里只有精品国产| 久久精品免视看国产成人2021| 久久精品大片| 久久99青青久久99久久| 麻豆系列国产剧在线观看| 午夜激情视频在线播放| 国产麻豆精品| 成人免费网站视频ww| 免费国产在线观看| 天天色色色| 日本免费区|