如題,ch582采用libCH573_TKY.a,版本105觸摸按鍵庫(kù),濾波模式1和 2能夠正常識(shí)別觸摸按鍵。設(shè)置成濾波模式 3 時(shí),
BaseLine為6679,遠(yuǎn)超過4096,估算應(yīng)該是正確值的2倍,請(qǐng)問如何調(diào)節(jié)?是否庫(kù)的問題??
keyData = TKY_PollForFilterMode_3_4();? //62.5ms調(diào)用一次
串口打印的數(shù)值
TOUCH0 INIT OK!
TOUCH Version =105?
?INIT baseLine=3341,init GetCurQueueBaseLine=3341? (初始化值,及初始化時(shí)檢測(cè)的BL值)
ch0 GetCurQueueValue=3335,GetCurQueueBaseLine=6679? (每2S刷新一次數(shù)據(jù))
ch0 GetCurQueueValue=3335,GetCurQueueBaseLine=6675
ch0 GetCurQueueValue=3337,GetCurQueueBaseLine=6678
配置參數(shù)
------觸摸按鍵基礎(chǔ)設(shè)置初始化--------
? ? TKY_BaseInitStructure.filterMode = FILTER_MODE_3;
? ? TKY_BaseInitStructure.shieldEn = 0;?
? ? TKY_BaseInitStructure.filterGrade = 1;
? ? TKY_BaseInitStructure.maxQueueNum = MAX_QUEUE_NUM;
? ? TKY_BaseInitStructure.baseRefreshOnPress = 0;?
? ? //---基線更新速度,baseRefreshSampleNum和filterGrade,與基線更新速度成反比,基線更新速度還與代碼結(jié)構(gòu)相關(guān),可通過函數(shù)GetCurQueueBaseLine來(lái)觀察---
? ? TKY_BaseInitStructure.baseRefreshSampleNum = 1;
? ? TKY_BaseInitStructure.baseUpRefreshDouble = 2;
? ? TKY_BaseInitStructure.baseDownRefreshSlow = 100;
? ? TKY_BaseInitStructure.tkyBufP = tkyBuf;
? ? TKY_BaseInit(TKY_BaseInitStructure);
? ? //--------對(duì)觸摸通道0進(jìn)行初始化,并列為檢測(cè)隊(duì)列中第1位----------
? ? GPIOA_ModeCfg(GPIO_Pin_5, GPIO_ModeIN_Floating);
? ? TKY_ChannelInitStructure.queueNum = 0;
? ? TKY_ChannelInitStructure.channelNum = 1;
? ? TKY_ChannelInitStructure.threshold = 200;? ?//---門檻閾值和PCB板相關(guān),請(qǐng)根據(jù)實(shí)際情況調(diào)整---
? ? TKY_ChannelInitStructure.threshold2 = 170;
? ? TKY_ChannelInitStructure.chargeTime = 2;? ?//---請(qǐng)根據(jù)具體電路調(diào)節(jié),使得原始測(cè)量數(shù)據(jù)在3000~3800左右較佳---
? ? TKY_ChannelInitStructure.disChargeTime = 2;
? ? //----如果存在手指按著觸摸按鍵上電的可能,可采用每隔一段時(shí)間保存基線值至掉電不丟失的存儲(chǔ)器(eeprom、鐵電等),上電讀取。
? ? //----采樣下面方式進(jìn)行初始化,必須加快基線更新速度或基線向上更新速度----
? ? TKY_ChannelInitStructure.baseLine = TKY_GetCurChannelMean(TKY_ChannelInitStructure.channelNum, ????? TKY_ChannelInitStructure.chargeTime, TKY_ChannelInitStructure.disChargeTime, 10000);
? ? TKY_CHInit(TKY_ChannelInitStructure);