觸摸屏驅動(dòng)程序的設計和實(shí)現
(4)獲得穩定的、去抖動(dòng)的測量數據
在進(jìn)行觸摸屏程序開(kāi)發(fā)時(shí),一定要注意原始的觸摸測量數據經(jīng)常會(huì )有一些噪聲和偏差,這是正常的。一般來(lái)說(shuō),只有用戶(hù)緊緊壓住電阻觸摸屏才能得到兩個(gè)連續的讀數,然而我們會(huì )發(fā)現當觸控筆或手指按上或離開(kāi)觸摸屏時(shí),讀數的變化要比保持穩定壓力時(shí)大得多。這是因為用戶(hù)是以機械的方式連通二個(gè)平面電阻-觸摸層,當用戶(hù)按壓和釋放觸摸屏時(shí),在很短的一段時(shí)間內觸摸屏的電氣連接均處于臨界狀態(tài)。這時(shí),我們需要丟棄這些讀數直到系統穩定下來(lái),否則提交的觸摸位置讀數會(huì )產(chǎn)生大幅跳躍,導致嚴重的失真或觸摸位置漂移。
這時(shí)就需要進(jìn)行折衷考慮,這也是觸摸屏驅動(dòng)設計的關(guān)鍵所在。如果我們要求較窄的穩定窗口,那么驅動(dòng)程序將無(wú)法跟蹤快速的“拖曳”操作;如果加寬穩定窗口,就可能面臨著(zhù)許多風(fēng)險,這些風(fēng)險包括接收到不精確的觸摸數據,或上面描述處于臨界狀態(tài)的層連接結果。這時(shí),就需要通過(guò)實(shí)驗來(lái)確定適合系統的最佳值。
在正常情況下,當屏幕被觸摸時(shí)驅動(dòng)程序應會(huì )得到每個(gè)穩定的讀數,并利用簡(jiǎn)單的線(xiàn)性插值法將原始數據轉換成像素坐標。讀取觸摸點(diǎn)的坐標是由 DdsiTouchPanalGetPoint()函數實(shí)現的。另外,在每個(gè)轉換過(guò)程的前后,驅動(dòng)程序必須檢查并確認屏幕仍處于被觸摸狀態(tài)。因為我們不希望采集到實(shí)際上是處于“開(kāi)路狀態(tài)”的穩定讀數。因此,在讀取觸摸數據時(shí),我們需要對原始數據進(jìn)行去抖動(dòng)處理,然后確定屏幕被觸摸時(shí)是否有穩定的讀數;如果不穩定就要繼續讀取數據并進(jìn)行去抖動(dòng)處理,直到得到穩定的數據為止。
最后,觸摸屏驅動(dòng)程序應將觸摸狀態(tài)和位置變化信息發(fā)送給更高層的應用軟件,以完成一次完整的觸摸操作。
電容式觸摸屏相關(guān)文章:電容式觸摸屏原理
評論