找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3224|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

簡易的觸摸屏濾波

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:90014 發(fā)表于 2015-9-14 18:41 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
本帖最后由 jialinx 于 2015-9-14 18:42 編輯

     使用電阻的觸摸屏?xí)r,ADC采集的信號往往有誤差,這個時候就需要點擊觸摸屏一次 ADC就采集多次 (比如 采集10次) 然而 一般來說就是取 這10個數(shù)的平均值 作為信號的值 但是 經(jīng)過試驗 這是非常不可靠的.例如 某次采集的 信號是  53 52 54 53 52 51 55 4095 0 1105 3321 4095  對于這樣的結(jié)果如果直接把這些數(shù)取平均值 那樣的話太不可靠了  我們觀察數(shù)據(jù) 顯然ADC采樣的正確的值 應(yīng)該是 52 左右 . 為什么呢? 因為觀察發(fā)現(xiàn) 53 52 54 53 52 51 這5個數(shù)差異不大 ,后面的5個數(shù) 顯然差異太大了... 對的信號往往是在某個范圍內(nèi)變化的(范圍越大 精度越小 可信度不高) 顯然前面的5個AD值的變化范圍是 可信的.
     然而 怎么樣讓計算機 知道正確的信號呢?
    對于這10個信號  我假設(shè) 正確的 值為 X 我定義一個可以接受的范圍 N  假如說著10個數(shù)中 落在 X-N 到X+N 的范圍內(nèi)的數(shù) 最多那么 此時的X的值 就是正確的信號 ( 也就落在是 落在X的N領(lǐng)域中的數(shù)最多 )


  1. typedef unsigned char uint8_t;

  2. #define N     3  //定于可以接受的范圍

  3. uint8_t LB(uint8_t *arr , uint8_t Length)
  4. {
  5.        uint8_t Max = 0 , Number = 0 ;//保存最多出現(xiàn)的次數(shù) 和 該值
  6.         uint8_t  i , j ;
  7.        uint8_t cc;// 差
  8.        uint8_t Count=0;// 計數(shù)器
  9.        for( i = 0 ; i < Length ; i++ )
  10.        {
  11.               for(j=0;j<Length;j++)
  12.               {
  13.                    if( i == j )
  14.                            continue;
  15.                     /* 求兩個數(shù)的差的絕對值 */
  16.                      if( arr[i] > arr[j] )
  17.                             cc = arr[i] - arr[j] ;
  18.                      else
  19.                             cc = arr[j] - arr[i] ;
  20.                     /* 如果差在范圍內(nèi) */
  21.                      if( cc<= N )
  22.                             Count++;
  23.               }
  24.                
  25.               if( Count > Max )
  26.               {
  27.                  
  28.                      Max = Count;
  29.                  
  30.                      Number = arr[i];

  31.               }
  32.               Count=0;
  33.        }

  34.        printf("Num=%d\tMax=%d\n",Number,Max);

  35. }
復(fù)制代碼


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表