android 触摸防抖,一种触摸屏防抖优化方法、系统及触摸屏终端与流程
本發明涉及觸摸屏技術領域,尤其涉及一種觸摸屏防抖優化方法、系統及觸摸屏終端。
背景技術:
隨著電子信息產業的快速發展,觸摸屏作為具有人機交互功能的智能產品,應用面極為廣泛,但其存在著較多的觸摸抖動問題。現有的去抖動方法是判斷當前觸點坐標與其前一個觸點坐標的距離是否小于或等于閾值,借此判斷當前的觸點坐標是否發生抖動,如果發生抖動就將當前的觸點坐標丟棄,這種方法極易造成畫線不連續的問題;此外,以電阻觸摸屏為例,普通去抖動方法只是通過延時采樣剔除散點來解決,然而觸摸屏越大,分布的雜散電容也越大,切換通道到穩定采樣的時間也會越長,再使用上述方法就必須加大延時時間,必定會嚴重降低響應速率和ADC的使用效率,不能保證ADC采樣的數據的準確性。
技術實現要素:
針對上述存在的技術問題,本發明提供了一種觸摸屏防抖優化方法、系統及觸摸屏終端,所述觸摸屏防抖優化方法包括以下步驟:連續獲取觸摸屏當前觸點的坐標,對獲取的坐標按照坐標值從小到大或從大到小排序,篩選排序得到序列兩端的特定個數采樣點的抖動坐標,去除抖動坐標;所述特定個數是觸摸屏電容達到充電飽和前的采樣點的個數。
優選地,還包括對去除抖動坐標后的觸點坐標進行低通濾波;
優選地,多次獲取觸摸屏當前觸點的坐標的具體步驟包括:
A1、識別觸點信號,觸發中斷程序;
A2、切換坐標軸;
A3、ADC進行采樣;
A4、采樣結束,切換至另一坐標軸,ADC再次進行采樣;
A5、再次采樣結束,跳出中斷程序;
A6、執行A1-A5。
優選地,所述觸摸屏電容達到充電飽和前的采樣點的個數為1~3個。
所述觸摸屏防抖優化系統,包括獲取模塊,用于多次獲取觸摸屏當前觸點的坐標;排序模塊,用于對獲取的坐標進行排序;篩選模塊,用于篩選排序所得序列兩端的特定個數的抖動坐標,并去除抖動坐標,所述獲取模塊、排序模塊和篩選模塊依次相連。
所述排序模塊的排序是將采樣按坐標值從大到小依次遞減排序或從小到大依次遞增排序。
所述篩選模塊篩選的特定個數是觸摸屏電容達到充電飽和前的采樣點的個數。
所述觸摸屏終端,包括前述觸摸屏防抖優化系統。
本發明解決了現有技術中未經排序篩選直接剔除抖動點所造成的畫線不連續的問題,同時提升了觸摸屏的響應速率和ADC的使用效率,此外利用低通濾波,更好地保證了輸出信號的連續性,實現了對觸摸屏數據的優化。
附圖說明
圖1為觸摸屏防抖優化方法的流程圖;
圖2為觸摸屏防抖優化方法的另一種流程圖;
圖3為觸摸屏防抖優化系統的結構框圖;
圖4為觸摸屏防抖優化系統的另一種結構框圖;
圖5為觸摸屏終端的結構框圖。
具體實施方式
為了使本發明的目的、技術方案及優點更加清楚明白,以下結合附圖及實施例,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,并不用于限定本發明。
實施例1
圖1為觸摸屏防抖優化方法的流程圖。
步驟101,多次獲取觸摸屏當前觸點的坐標,步驟102,對獲取的坐標進行排序,步驟103,篩選排序所得序列兩端的特定個數的抖動坐標,步驟104,去除抖動坐標。其中,所述的多次獲取觸摸屏當前觸點的坐標的具體步驟包括:
A1、識別觸點信號,觸發中斷程序;
A2、切換坐標軸;
A3、ADC進行多次采樣;
A4、再次切換至另一坐標軸,ADC再次進行多次采樣;
A5、跳出中斷程序;
A6、當產生觸點中斷時,執行A1-A5。
以四線電阻屏為例,觸點信號的識別,是根據檢測特定引腳,如INT引腳的電平狀態實現的;ADC進行的多次采樣原理如下,對X軸(水平軸)給電壓,Y-(豎直軸一端)懸空,測Y+(豎直軸另一端)處電壓。此時Y+處相當于X軸按下位置的抽頭點,X軸坐標即為X_Pos=Vadc/Vx*X_Length。式中X_Pos為實際觸點位置,Vadc為ADC采樣電壓,Vx為X軸上的整個壓降,X_Length代表X軸的長度。通過切換坐標軸后多次采樣的方法,延長坐標軸電壓穩定時間,以降低電容充放電帶來的干擾。
對獲取的坐標排序,包括從大到小依次遞減排序或從小到大依次遞增排序。
由于多次采樣時坐標軸并未切換,所以觸摸屏電容將在特定個數采樣點后達到飽和充電,如果觸點中斷產生,會有特定個數的采樣點發生漂移現象,故將特定個數確定為觸摸屏電容達到充電飽和前的采樣點的個數。
在另一種實施例中,如圖2所示,還包括步驟201,對去除抖動坐標后的觸點坐標進行低通濾波,濾波原理如下:
y[n]=a*x[n]+(1-a)*y[n-1],其中y[n]為本次濾波結果,x[n]為本次采樣值,y[n-1]為上次濾波結果,a為濾波系數,a的數值的大小可以通過實際采集的數據通過畫圖的方式調節。
實施例2
圖3為觸摸屏防抖優化系統的結構框圖。
觸摸屏防抖優化系統,包括獲取模塊301,用于多次獲取觸摸屏當前觸點的坐標;排序模塊302,用于對獲取的坐標進行排序;篩選模塊303,用于篩選排序所得序列兩端的特定個數的抖動坐標,并去除抖動坐標。其中,排序模塊的排序包括從大到小依次遞減排序或從小到大依次遞增排序。篩選模塊篩選的特定個數為至少1個,至多3個。
在另一種實施例中,如圖4所示,還包括低通濾波模塊401,用于對去除抖動坐標后的觸點坐標進行低通濾波。
其中,所述低通濾波模塊可以是一級遞歸濾波器,濾波原理如下:
y[n]=a*x[n]+(1-a)*y[n-1],其中y[n]為本次濾波結果,x[n]為本次采樣值,y[n-1]為上次濾波結果,a為濾波系數,a的數值的大小可以通過實際采集的數據通過畫圖的方式調節。
實施例3
圖5是觸摸屏終端的結構框圖。
觸摸屏終端包括了上述觸摸屏防抖優化系統。
本發明方案所公開的技術手段不僅限于上述實施方式所公開的技術手段,還包括由以上技術特征任意組合所組成的技術方案。
總結
以上是生活随笔為你收集整理的android 触摸防抖,一种触摸屏防抖优化方法、系统及触摸屏终端与流程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php框架费尔康,GitHub - ma
- 下一篇: python统计程序运行时间-如何方便地