久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 物聯網與傳感器 > 設計應用 > 電容觸摸傳感的理論框架

電容觸摸傳感的理論框架

——
作者:Thomas Perme 微芯科技公司 應用工程師 時間:2009-07-20 來源:電子產品世界 收藏

確定是否大于最小門限值
指示按下/未按下

本文引用地址:http://cqxgywz.com/article/96399.htm

代碼示例1給出了實現該百分比表決方案的關鍵步驟的指令。它假定已經設置了完整的掃描系統,現在在代碼中只需要實現表決系統。 

第一個代碼塊從步驟3 開始,對兩個數組pctarray[]和indxarray[]進行排序。pctarray數組中包含前面剛執行的每次掃描中每個的值。indxarray每一次都必須復位。indxarray關聯一個索引(指示與哪個關聯)——對應于pctarray中的每個百分比值。在步驟4的排序過程中,該索引記錄pctarray中的每個讀數對應于哪個傳感器。(關于更形象化的說明,請參見與本文關聯的演示幻燈片)。

按從最高到最低進行排序之后,下一個代碼塊執行步驟6和7。pctarray[0]值是受影響程度最高的讀數,而indxarray[0]是傳感器的索引。然后,可以執行簡單的檢查,確定值是高于還是低于可接受的門限值。如果按鍵被按下,則可以根據indxarray[0]值確定它是哪一個傳感器。如果值被視為“關閉”,則說明沒有任何按鍵被按下(因為該按鍵是受影響程度最高的按鍵)。所有的按鍵都應在應用級別指示為“關閉”。
代碼示例1:

if (INDEX == 3) {
 // 如果掃描結束

 IndxArray[0] = 0; // 復位IndxArray
 IndxArray[1] = 1;
 IndxArray[2] = 2;
 IndxArray[3] = 3;

 // 從大到小對PctArray和IndxArray進行排序
 // .. 基于PctArray
 for (i=0; i<NUM_BTTNS-1; i++) {
  for (j=0; j<((NUM_BTTNS-1)-i); j++) { 
   if (PctArray[j] < PctArray[j+1]) {
        temp = PctArray[j];         // 存儲第j個元素
           PctArray[j] = PctArray[j+1];       // 移動第j+1個元素
    PctArray[j+1] = temp;        // 移動原先的第j個元素  

    temp = IndxArray[j];        // 以類似方式對索引數組進行排序
    IndxArray[j] = IndxArray[j+1];      // 對應于百分比數組
    IndxArray[j+1] = temp;
   }
  }
 }
}



評論


相關推薦

技術專區

關閉