STM32的定時(shí)器輸入通道都有一個(gè)濾波單元,分別位于每個(gè)輸入通路上(下圖中的黃色框)和外部觸發(fā)輸入通路上(下圖中的蘭色框),它們的作用是濾除輸入信號上的高頻干擾。![]() 具體操作原理如下: 在TIMx_CR1中的CKD[1:0]可以由用戶(hù)設置對輸入信號的采樣頻率基準,有三種選擇: 1)采樣頻率基準fDTS=定時(shí)器輸入頻率fCK_INT 2)采樣頻率基準fDTS=定時(shí)器輸入頻率fCK_INT/2 3)采樣頻率基準fDTS=定時(shí)器輸入頻率fCK_INT/4 然后使用上述頻率作為基準對輸入信號進(jìn)行采樣,當連續采樣到N次個(gè)有效電平時(shí),認為一次有效的輸入電平。 實(shí)際的采樣頻率和采樣次數可以由用戶(hù)程序根據需要選擇;外部觸發(fā)輸入通道的濾波參數在從模式控制寄存器(TIMx_SMCR)的ETF[3:0]中設置;每個(gè)輸入通道的濾波參數在捕獲/比較模式寄存器1(TIMx_CCMR1)或捕獲/比較模式寄存器2(TIMx_CCMR2)的 IC1F[3:0]、IC2F[3:0]、IC3F[3:0]和IC4F[3:0]中設置。 ![]() ![]() 例如:當fCK_INT=72MHz時(shí),選擇fDTS=fCK_INT/2=36MHz,采樣頻率fSAMPLING=fDTS/2=18MHz且N=6,則頻率高于3MHz的信號將被這個(gè)濾波器濾除,有效地屏蔽了高于3MHz的干擾。 比如,結合輸入捕獲的中斷,可以輕松地實(shí)現按鍵的去抖動(dòng)功能,而不需要軟件的干預;這可是由硬件實(shí)現的去抖動(dòng)功能,大大節省了軟件的開(kāi)銷(xiāo)和程序代碼的長(cháng)度。 每個(gè)定時(shí)器最多可以實(shí)現4個(gè)按鍵的輸入,這個(gè)方法也可以用于鍵盤(pán)矩陣的掃描,而且因為是通過(guò)中斷實(shí)現,軟件不需頻繁的進(jìn)行掃描動(dòng)作。 發(fā)表于2009/9/20 |