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