新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 嵌入式系統(tǒng)在觸摸屏驅(qū)動程序中的應(yīng)用

嵌入式系統(tǒng)在觸摸屏驅(qū)動程序中的應(yīng)用

作者: 時間:2011-10-27 來源:網(wǎng)絡(luò) 收藏
3 WinCE下模型

本文引用地址:http://2s4d.com/article/150095.htm

  要編寫還要確定它是屬于哪種驅(qū)動。Windows CE分本機設(shè)備驅(qū)動和流設(shè)備驅(qū)動。本機設(shè)備驅(qū)動程序是被靜態(tài)地鏈接到GWES,它們不作為一個單獨的DLL存在。有一些類型的設(shè)備,如鍵盤、顯示器和Pc卡插槽等對操作都有一定的接口,是專門用于Windows CE.NET的。所以它們都屬本機設(shè)備驅(qū)動。若是按照結(jié)構(gòu)分,又可分為分層的驅(qū)動程序和不分層的驅(qū)動程序。分層的驅(qū)動程序由兩個設(shè)置好的層組成:上層是模型設(shè)備驅(qū)動程序(MDD),下層是依賴平臺的驅(qū)動程序(PDD)。流接口驅(qū)動程序是以動態(tài)鏈接庫形式存在的,由設(shè)備管理器統(tǒng)一加載、管理和卸載。其驅(qū)動模型見圖3。本文采用分層的驅(qū)動程序來完成基于$3C2410的驅(qū)動。

  4 Windows CE下驅(qū)動程序的實現(xiàn)

  4.1 配置硬件

  對于分層的驅(qū)動程序只需要編寫對應(yīng)于特定硬件平臺的PDD層代碼。首先是配置控制器硬件,這是完成驅(qū)動程序的第一件事。即對進(jìn)行硬件初始化。也就是通過向映射到存儲器的寄存器中寫人數(shù)據(jù)將觸摸屏控制器設(shè)置成某個確定的狀態(tài)。配置硬件之前,我們需要事先決定是否采用中斷驅(qū)動。

  這里我們采用中斷驅(qū)動方式。要說明的是。并不是采用中斷永遠(yuǎn)是最好的設(shè)計方式。配置硬件這一過程是由TouchPanalPowerOn0函數(shù)完成的。下面是部分實現(xiàn)代碼:

  4.2 設(shè)置中斷判斷被觸摸情況

  對觸摸屏基本的硬件進(jìn)行正確設(shè)置完成后。接下來就要采用一種可靠的方法來判斷屏幕是否被觸摸了。在其驅(qū)動中采用了兩個邏輯中斷:

  1.SYSINTR TOUCH,用于觸摸筆點擊觸摸屏?xí)r產(chǎn)生相應(yīng)的中斷:

  2.SYSINTR TOUCH_CHANGE,用于觸摸筆離開時產(chǎn)生相應(yīng)的中斷。

  該過程有幾個判斷要點:檢查屏幕是否被觸摸;采集每個軸上的多個原始數(shù)據(jù)用于以后的過濾;檢查屏幕是否仍在被觸摸。

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉