【編者按】在嵌入式系統(tǒng)中較為常用的是四線電阻式觸摸屏牲晤,通過檢測(cè)x軸和y軸的電壓,來確定觸點(diǎn)的位置。一般觸摸屏系統(tǒng)結(jié)構(gòu)為:觸摸屏->觸摸屏控制器->處理器留夜。
wince7下觸摸屏的驅(qū)動(dòng)分為PDD層(位于bsp目錄中)和MDD層(位于public目錄中)。PDD層和MDD層通過DDSI接口函數(shù)連接图甜,MDD層和上層通過DDI函數(shù)連接碍粥。其中MDD層一般無需修改,我們只需修改PDD層的代碼黑毅。
比如我的bsp目錄下觸摸屏驅(qū)動(dòng)中的touchscreenpdd.cpp文件中主要有如下函數(shù):
TchPdd_Init()
TchPdd_Ioctl()
PDDTouchIST()
PDDInitializeHardware()
PDDTouchPanelEnable()
PDDTouchPanelGetPoint()
PDDCalibrationThread()
PDDStartCalibrationThread()
PDDDeInitailzeHardware()
PDDTouchPanelDisable()
其中TchPdd開頭的函數(shù)就是DDSI函數(shù)嚼摩,PDD開頭的函數(shù)就是PDD層的函數(shù)。MDD層會(huì)最先調(diào)用TchPdd_Init()函數(shù)矿瘦,該函數(shù)會(huì)將DDSI函數(shù)以函數(shù)指針的形式傳遞給MDD層枕面,并調(diào)用PDD層的函數(shù)進(jìn)行必要的初始化,如調(diào)用PDDInitializeHardware()來初始化SPI学蛤,GPIO(我的觸摸屏控制器使用SPI接口)贮祥,調(diào)用PDDTouchPanelEnable()來創(chuàng)建“觸摸屏事件”,創(chuàng)建IST線程等夭菲。
IST線程函數(shù)PDDTouchIST()中會(huì)有一個(gè)while循環(huán)程昨,循環(huán)中有一個(gè)WaitForSingleObject(,)函數(shù)摇轨。該函數(shù)有兩個(gè)參數(shù)咖亏,第一個(gè)參數(shù)是“觸摸屏事件”的句柄,第二個(gè)參數(shù)用來設(shè)置等待超時(shí)的時(shí)間。IST線程執(zhí)行到這個(gè)函數(shù)會(huì)等待“觸摸屏事件”發(fā)生或者超時(shí)杏恍。當(dāng)這兩種情況之一發(fā)生后轮昧,線程就會(huì)往下執(zhí)行,并調(diào)用PDDTouchPanelGetPoint()函數(shù)來讀取觸點(diǎn)坐標(biāo)胆狐。在“觸摸屏事件”發(fā)生之前熟排,超時(shí)時(shí)間會(huì)設(shè)置為無限等待。只有當(dāng)“觸摸屏事件”發(fā)生后(觸點(diǎn)按下)才會(huì)開始讀坐標(biāo)虱而,并判斷是否還是按下狀態(tài)筏餐,如果還是按下狀態(tài),那么就會(huì)設(shè)置超時(shí)時(shí)間為某一個(gè)有限值牡拇,這樣當(dāng)WaitForSingleObject等待時(shí)間超過這個(gè)值后又會(huì)去讀取坐標(biāo)魁瞪。這種機(jī)制就能保證我們能讀取到觸點(diǎn)移動(dòng)的軌跡。
當(dāng)然要想使用“觸摸屏事件”惠呼,必須要有一個(gè)觸摸屏的中斷(當(dāng)觸點(diǎn)按下导俘,這個(gè)中斷發(fā)生),并將這個(gè)中斷和“觸摸屏事件”關(guān)聯(lián)起來剔蹋,這樣中斷發(fā)生后旅薄,才會(huì)觸發(fā)“觸摸屏事件”。
還有一種方法:不使用中斷泣崩,直接采用輪詢方式來讀取坐標(biāo)少梁,通過讀取坐標(biāo)值的合法性來決定是否有觸點(diǎn)按下。這種方式下矫付,WaitForSingleObject的第一個(gè)參數(shù)就不起作用凯沪,且第二個(gè)參數(shù)必須設(shè)為一個(gè)有限值,這個(gè)值就決定來輪詢的頻率洞歼。
聲明:本網(wǎng)站所收集的部分公開資料來源于互聯(lián)網(wǎng)卫削,轉(zhuǎn)載的目的在于傳遞更多信息及用于網(wǎng)絡(luò)分享,并不代表本站贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé)宣验,也不構(gòu)成任何其他建議豌楷。本站部分作品是由網(wǎng)友自主投稿和發(fā)布、編輯整理上傳桶眠,對(duì)此類作品本站僅提供交流平臺(tái),不為其版權(quán)負(fù)責(zé)看群。如果您發(fā)現(xiàn)網(wǎng)站上所用視頻沦煤、圖片、文字如涉及作品版權(quán)問題涯锅,請(qǐng)第一時(shí)間告知寇祈,我們將根據(jù)您提供的證明材料確認(rèn)版權(quán)并按國家標(biāo)準(zhǔn)支付稿酬或立即刪除內(nèi)容,以保證您的權(quán)益!聯(lián)系電話:010-58612588 或 Email:editor@mmsonline.com.cn勋崇。
- 暫無反饋
編輯推薦
- 2025新年特刊:打造新質(zhì)生產(chǎn)力,智啟未來新篇章
- 定義制造業(yè)未來的數(shù)控加工中心技術(shù)專題
- 航空航天及交通領(lǐng)域先進(jìn)制造技術(shù)應(yīng)用專題
- 解碼消費(fèi)電子產(chǎn)品生產(chǎn)的數(shù)字化之路技術(shù)專題
- 精密智能機(jī)床慷垮,助力制造升級(jí)技術(shù)專題
- 汽車輕量化驅(qū)動(dòng)下的零部件加工應(yīng)用專題
- 高性能銑刀實(shí)現(xiàn)高精加工生產(chǎn)技術(shù)專題
- 航空航天發(fā)動(dòng)機(jī)解決方案專題
- 高效齒輪加工生產(chǎn)技術(shù)方案專題
- 金屬加工液的性能不止?jié)櫥夹g(shù)應(yīng)用專題