久久精品在这里_成人99免费视频_国产激情视频一区二区在线观看_国产伦精品一区二区三区免费 _亚洲午夜免费福利视频_色狠狠色狠狠综合_av在线综合网_91毛片在线观看_欧美视频一区二区在线观看_极品美女销魂一区二区三区免费_国产亚洲欧美激情_在线免费观看不卡av_日韩不卡一区二区三区_91精品国产麻豆国产自产在线_亚洲国产精品一区二区久久恐怖片_a4yy欧美一区二区三区


曙海教育集團論壇Win CE 專區WinCE系統定制與驅動開發 → WinCE中觸摸屏驅動開發詳解


  共有8498人關注過本帖樹形打印

主題:WinCE中觸摸屏驅動開發詳解

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


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

1.觸摸屏驅動程序的模型

1.1 分層觸摸屏驅動層序結構

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

1.2 DDI函數集(MDD層)

TouchPanelPowerHandler(BOOL boff)

Touch Screen的電源管理函數,boff:TRUE表示關閉電源,FALSE表示打開電源,其只是調用DdsiTouchPanelPowerHandler()函數,該函數在進入或退出poweroff狀態時產生。

TouchPanelCalibrationAPoint()

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

TouchPanelReadCalibrationPoint()

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

TouchPanelReadCalibrationAbord()

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

TouchPanelDisable()

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

TouchPanelEnable(PFN_TOUCH_PANEL_CALLBACK    pfnCallback)

PfnCallback是指向處理touch panel事件的回調函數,該函數的執行動作:

⑴創建事件hTouchPanelEvent和hCalibrationSampleAvailable,其中當觸筆按下或抬起,或者定時器中斷時會觸發hTouchPanelEvent事件,而在校準狀態下當有校準數據輸入時會觸發hCalibrationSampleAvailable事件。

⑵初始化臨界區,初始化所需的觸摸屏中斷gIntrTouch和gIntrTouchChanged,并且把它們關聯到事件hTouchPanelEvent中。

⑶創建IST TouchPanelpISR,并設定其優先級。

TouchPanelSetCalibration()

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

TouchPanelGetDeviceCaps()

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

TouchPanelSetMode()

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

1.3WinCE  DDSI函數集(PDD層)

DdsiTouchPanelGetDeviceCaps(INT iIndex, LPVOID lpOutput)

查詢touch panel設備的相關信息。

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

TPDC_SAMPLE_RATE_ID:查詢采樣率信息。

TPDC_CALIBRATION_POINT_COUNT_ID:查詢用于校驗的點的個數。

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

LpOutput:根據iIndex值分別指向相關的信息。

DdsiTouchPanelSetMode()

設置Touch Panel工作模式。

iIndex:模式索引

TPSM_SAMPLERATE_HIGH_ID:高采樣率

TPSM_SAMPLERATE_LOW_ID:低采樣率

lpInput:指向包含相關信息的內存

DdsiTouchPanelEnable()

該函數所執行的動作:

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

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

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

DdsiTouchPanelDisable()

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

DdsiTouchPanelAttach()

只是簡單地返回1。

DdsiTouchPanelDetach()

只是簡單地返回0。

DdsiTouchPanelGetPoint (TOUCH_PANEL_SAMPLE_FLAGS * pTipStateFlags,

                       INT * pUncalX,

                       INT * pUncalY )

獲得Touch Panel上被按下的點的狀態和坐標。

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

◆pUnCalX:觸摸點的X坐標

◆pUnCalY:觸摸點的Y坐標

◆DdsiTouchPanelPowerHandler()

設置touch panel的電源狀態,boff:TRUE表示關閉電源,FALSE表示打開電源,

2.觸摸屏驅動程序的實現

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

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

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

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

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

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

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

4.觸摸屏的接口部分

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

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

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

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

在觸摸屏接口使用時,TSXM或TSYM應該接觸摸屏接口的。

5.配置控制器硬件

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

ECFLG:ADCCON[15],AD轉換結束標志,只讀,0表示AD轉換在過程中;1表示AD轉換結束。

PRSCEN:ADCCON[14],AD轉換器預分頻器使能,在此使能,故為1。

PRSCVL:ADCCON[13:6],AD轉換器預分頻器值,在此為49。

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

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

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

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

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

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

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

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

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

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

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

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

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

注:當等待觸摸屏中斷時,XP_SEN位(XP輸出無效)應該置為1,且PULL_UP(XP上拉使能)位應該置為0。

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

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

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

該寄存器有11位,每位和一位中斷源相關。觸摸屏中斷請求有效,故第十位應設為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計數緩存寄存器,選擇定時器3為時鐘,比如定義10ms中斷一次,提供觸摸屏采樣時間基準,即10ms觸摸屏采樣一次。在此為17×1000/100=170,在此PCLK=400MHz/6,可以得出timer3的時鐘頻率=PCLK/(244+1).16,可以算數觸摸屏就是10ms產生一次定時中斷,進行一次采樣


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

返回版面帖子列表

WinCE中觸摸屏驅動開發詳解








簽名
久久精品在这里_成人99免费视频_国产激情视频一区二区在线观看_国产伦精品一区二区三区免费 _亚洲午夜免费福利视频_色狠狠色狠狠综合_av在线综合网_91毛片在线观看_欧美视频一区二区在线观看_极品美女销魂一区二区三区免费_国产亚洲欧美激情_在线免费观看不卡av_日韩不卡一区二区三区_91精品国产麻豆国产自产在线_亚洲国产精品一区二区久久恐怖片_a4yy欧美一区二区三区
日本不卡高清视频| 欧美一区二区视频观看视频| 26uuu国产电影一区二区| 国产成人av电影在线| 欧美日韩一区二区在线观看| 国内精品伊人久久久久av影院| 欧美午夜寂寞影院| 黄一区二区三区| 欧美日韩成人高清| 成人丝袜高跟foot| 久久久另类综合| 国产精品免费看一区二区三区| 国产精品欧美久久久久无广告| 九色91在线视频| 性感美女久久精品| 日本高清不卡aⅴ免费网站| 精品亚洲国内自在自线福利| 欧美一区二区三区视频在线| 99视频在线观看一区三区| 久久久99免费| 欧美大香线蕉线伊人久久国产精品 | 亚洲激情中文1区| 亚洲精品国产一区| 久久99这里只有精品| 日韩欧美一卡二卡| 岛国视频一区| 亚洲小说欧美激情另类| 欧美亚洲综合在线| 99视频一区二区三区| 亚洲欧美日韩精品久久久久| 自拍偷拍一区二区三区| 国产揄拍国内精品对白| 2020国产精品自拍| 日本最新一区二区三区视频观看| 日本欧美肥老太交大片| 日韩欧美一级特黄在线播放| 国产一区自拍视频| 日韩精品乱码av一区二区| 欧美电影免费观看高清完整版在线 | 久久精品夜夜夜夜久久| 热舞福利精品大尺度视频| 久久精品国产99国产精品| 久久婷婷久久一区二区三区| 日本一区不卡| 国产**成人网毛片九色| 亚洲欧美日韩中文字幕一区二区三区 | 亚洲欧美国产三级| 欧美日本视频在线| 国产日韩在线一区二区三区| 天堂在线亚洲视频| 久久精品人人爽人人爽| 亚洲巨乳在线观看| av激情亚洲男人天堂| 亚洲主播在线观看| 日韩精品最新网址| 日本一区二区高清视频| 国产ts人妖一区二区| 亚洲欧美另类综合偷拍| 91精品国产入口在线| 蜜桃在线一区二区三区精品| 国内欧美视频一区二区| 国产精品不卡视频| 欧美精品黑人性xxxx| 欧美日韩精品中文字幕一区二区| 韩国精品一区二区| 亚洲色图第一区| 欧美一区二区三区视频在线观看 | 奇米色777欧美一区二区| 国产欧美日韩综合精品一区二区| 一区二区免费电影| 国产亚洲自拍偷拍| 国产在线视频一区二区| 亚洲综合一区在线| 国产亚洲欧美日韩俺去了| 欧美午夜一区二区三区免费大片| 国产欧美综合精品一区二区| 国产一区二区三区四区五区美女| 亚洲免费看黄网站| 久久精品一区二区三区av| 欧美三电影在线| 五月天亚洲综合小说网| 91在线国产福利| 韩国一区二区在线观看| 亚洲国产美女搞黄色| 中文字幕精品—区二区四季| 4438x亚洲最大成人网| 亚洲精蜜桃久在线| 国产综合 伊人色| 不卡视频在线观看| 久久99久国产精品黄毛片色诱| 亚洲黄色免费电影| 国产精品毛片久久久久久| 日韩一区二区在线观看视频 | 成人免费看黄yyy456| 日本人妖一区二区| 一区二区久久久久| 国产精品福利在线播放| 精品剧情v国产在线观看在线| 色婷婷综合久久久久中文| 欧美日韩一区二区三区在线观看免| 99久久婷婷国产综合精品电影 | 久久综合色天天久久综合图片| 日本韩国精品一区二区在线观看| 乱一区二区三区在线播放| 69堂成人精品视频免费| 成人网在线播放| 国产精品一区二区在线观看不卡| 日本欧美肥老太交大片| 亚洲第一狼人社区| 一区二区三区在线观看欧美| 国产精品美女久久福利网站| 久久综合给合久久狠狠狠97色69| 欧美区视频在线观看| 在线区一区二视频| 色老汉一区二区三区| 亚洲午夜精品久久久中文影院av | 麻豆一区二区三| 丝袜国产日韩另类美女| 亚洲国产美女搞黄色| 一区二区三区四区高清精品免费观看 | 91玉足脚交白嫩脚丫在线播放| 国产成人精品午夜视频免费| 国产一区二区三区黄视频 | 国产精品久久久久久福利一牛影视| 精品国产精品一区二区夜夜嗨| 欧美一级免费大片| 欧美电影免费观看高清完整版| 欧美一区二区三区视频免费 | 国产精品久久久久久久免费大片| 91久久精品www人人做人人爽 | 一区二区三区高清| 亚洲无人区一区| 亚洲成a人v欧美综合天堂| 五月天亚洲精品| 美女视频黄 久久| 久久99精品久久久久久久久久久久| 久久成人久久爱| 国产成人在线电影| 99亚偷拍自图区亚洲| 国产成人免费观看| 久久综合久久久| 亚洲国产欧美一区二区三区不卡| 天天综合狠狠精品| 一本久久综合亚洲鲁鲁五月天 | 国产91社区| 麻豆精品传媒视频| 亚洲精品乱码久久久久久蜜桃91| 日本电影欧美片| 日韩一区二区三区精品视频 | 日本午夜精品一区二区| 亚洲午夜激情| 欧美精品视频www在线观看| 精品久久久久久久久久久院品网 | 亚洲三区视频| 欧美调教femdomvk| 精品欧美久久久| 亚洲欧美综合在线精品| 五月婷婷欧美视频| 国模一区二区三区白浆| av网站免费线看精品| 激情视频一区二区| 一本一道久久久a久久久精品91| 欧美日韩午夜在线视频| www国产亚洲精品久久麻豆| 国产精品久久久久毛片软件| 亚洲一区二区三区在线看| 精品一区二区三区久久| 99精品欧美一区二区三区综合在线| 精品国产乱码久久久久久蜜柚| 亚洲国产欧美不卡在线观看| 9191成人精品久久| 中文字幕av不卡| 日韩有码一区二区三区| 成人av午夜电影| 久久久久免费网| 欧美日韩一区精品| 久久久电影一区二区三区| 亚洲图片欧美视频| 国产激情视频一区二区三区欧美| 国产98在线|日韩| 91搞黄在线观看| 中文字幕精品一区二区精品绿巨人| 天天色 色综合| 91麻豆精品秘密| 色老头久久综合| 欧美国产一区视频在线观看| 五月天激情综合网| 99久久免费国产| 亚欧精品在线| 精品久久一二三区| 日韩精品欧美精品| 成人免费视频网站入口| 91久久精品国产91性色tv| 国产欧美日韩综合| 久久国产精品无码网站| 国产欧美综合精品一区二区| 欧美日韩一级二级| 亚洲免费在线视频| 成人免费高清视频| 色综合天天综合网天天看片|