<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

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

          作者: 時間:2011-10-27 來源:網(wǎng)絡(luò) 收藏
          4.3 讀取數(shù)據(jù)并去抖

          本文引用地址:http://www.ex-cimer.com/article/150095.htm

            當(dāng)屏幕被觸摸時。我們首先讀取x軸和Y軸的原始數(shù)據(jù)并進(jìn)行去抖處理,然后判斷得到的數(shù)據(jù)是否穩(wěn)定,如果不穩(wěn)定,繼續(xù)讀取數(shù)據(jù)并去抖,直到得到穩(wěn)定的數(shù)據(jù)為止。讀取觸摸點(diǎn)的坐標(biāo)是由DdsiTouchPanalGetPointoi累i數(shù)實(shí)現(xiàn)的。部分實(shí)現(xiàn)代碼如下:

            4.4 校準(zhǔn)

            完成前面繁瑣的工作后,的各種功能就都已經(jīng)準(zhǔn)備就緒了?,F(xiàn)在就可以實(shí)際幕了。電阻在操作前需要校準(zhǔn)。這需要一些參考值。以便我們能夠?qū)⒔邮盏降脑寄?shù)轉(zhuǎn)換值轉(zhuǎn)換成高層軟件所需的屏幕像素坐標(biāo)。由于許多電阻觸摸屏存在著顯著的非線性,所以如果在最大值和最小值之間簡單的插入幾個位置數(shù)值會導(dǎo)致非常不精確。通常觸摸在一啟動時就運(yùn)行校準(zhǔn)程序。但要記住一定要把這些參考值保存起來。以免我們在以后的加電啟動期間再做校準(zhǔn)。

            下面是校正算法代碼:

            做出準(zhǔn)確判斷的唯一途徑就是進(jìn)行大量反復(fù)的測試。經(jīng)過大量試驗(yàn)表明,選取的校準(zhǔn)點(diǎn)越多,內(nèi)插窗口的間距越小,所得到的校準(zhǔn)精度就越高。校準(zhǔn)完成之后。便可以開始正常的操作了,并開始向更高層的軟件發(fā)送觸摸事件。最后一步,我們利用Platform Builder把編制好的驅(qū)動程序加載到WinCE內(nèi)核中,然后燒錄到目標(biāo)設(shè)備。啟動后我們就會得到一個友好的觸摸屏界面。就能檢驗(yàn)該驅(qū)動程序是否成功了。

            5 結(jié)語

            設(shè)計(jì)Windows CE驅(qū)動程序時。首先要選好驅(qū)動程序的類型。本文選取的是分層的本機(jī)設(shè)備驅(qū)動。開發(fā)的效率比較高,其它的驅(qū)動程序可以根據(jù)實(shí)際情況選擇合適的驅(qū)動模型。此外。Windows CE的驅(qū)動程序可以針對不同的硬件平臺進(jìn)行移植。只要掌握了上述核心思想就能成功實(shí)現(xiàn)移植。

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

          上一頁 1 2 3 下一頁

          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();