最近在測試CH549的觸摸功能,參考的例程是CH549EVT\EXAM\TouchKey,經(jīng)測試,觸摸無效,只有按下輕觸開關(guān)才能輸出ADC數(shù)據(jù),串口數(shù)據(jù)如下:
請問,這個問題是不是因為觸摸端口P11 P14到觸摸彈簧接腳的PCB周邊(包括上面和底面)敷銅導(dǎo)致?還是其他的原因?P11 P14沒有接上拉電阻,應(yīng)該沒有問題吧?請大師指點,謝謝!
最近在測試CH549的觸摸功能,參考的例程是CH549EVT\EXAM\TouchKey,經(jīng)測試,觸摸無效,只有按下輕觸開關(guān)才能輸出ADC數(shù)據(jù),串口數(shù)據(jù)如下:
請問,這個問題是不是因為觸摸端口P11 P14到觸摸彈簧接腳的PCB周邊(包括上面和底面)敷銅導(dǎo)致?還是其他的原因?P11 P14沒有接上拉電阻,應(yīng)該沒有問題吧?請大師指點,謝謝!
您好,
觸摸按鍵上層的底層不鋪地,盡量避免走線靠近IIC或SPI等通訊線,觸摸需要根據(jù)實際觸摸效果打印出來的采樣值變化調(diào)整判定閾值優(yōu)化觸摸效果。
請問大佬,這樣設(shè)計,觸摸開關(guān)有沒有問題?
經(jīng)過測試,昨天還好,手指直接觸及觸摸焊盤?value = TouchKeySelect(ch, CPW_Table[ch])還有幾百的變化值,今天怎么又沒變化了,都是初始值4093左右?
GPIO配置模式可以配成高阻輸入,您代碼里這個沒配好,觸摸按鍵建議底層和頂層都不要鋪地線,參考下評估板設(shè)計,ADC測量可以多測幾次,丟掉前面幾次,可以考慮切換通道之前先讓這個腳輸出1us 左右的低電平充分電容放電。
我原以為
? ? P1_MOD_OC &= 0x60;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//P15 P16高阻輸入?
? ? P1_DIR_PU &= 0x60;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//P15 P16高阻輸入? 0110 0000
是設(shè)置了輸入高阻了,原來是設(shè)置錯了。應(yīng)該是
? ? P1_MOD_OC &= 0x9f;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//P15 P16高阻輸入?
? ? P1_DIR_PU &= 0x9f;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//P15 P16高阻輸入? 1001 1111
看了P1_MOD_OC和P1_DIR_PU后面的說明才清楚。
其實還不如刪除上面的代碼,在主程序中用
? GPIO_Init(PORT1, PIN5, MODE0); // P1.5高阻輸入
? ?GPIO_Init(PORT1, PIN6, MODE0); // P1.6高阻輸入
來得方便。
現(xiàn)在還有個問題,就是:如果用手直接觸摸TK5的焊盤,觸摸及彈起的效果與輕觸開關(guān)一樣,但是如果隔著一張紙進(jìn)行觸摸,則串口打印的信息顯示是反復(fù)多次的“觸摸”及“彈起”:
這個問題又該如何解決呢?
觸摸焊盤有變化功能本身應(yīng)該正常,可能紙張本身在觸摸的過程中有抖動,可以找個薄蓋板真實固定住試試。
我用86型空白面板試了,基本可以實現(xiàn)普通輕觸開關(guān)的功能,但必須細(xì)調(diào)DOWM_THRESHOLD_VALUE和UP_THRESHOLD_VALUE兩個閥值的參數(shù)。
用起來不是太順滑,估計還得加入什么算法,就像普通輕觸開關(guān)去抖一樣。