2011-02-19 50 views
1

我在我的項目中使用msp430f2013微控制器..在那我需要計算傳入的脈衝信號頻率列車....我不知道該怎麼做....可以任何人都可以在這裏幫助我..示例代碼對我來說更加有用....提前感謝捕獲傳入的信號

回答

2

您需要閱讀微控制器手冊,然後弄清楚如何設置一個可以測量兩個脈衝沿之間的間隔(例如從一個前沿到下一個)。的頻率f,將這個時間間隔,T的倒數,即

f = 1/t 
1

有多種方法可以做到這一點,也許最簡單的理解是設置一個定時器作爲一個簡單的計數器。輪詢輸入引腳,當它改變狀態時,保存定時器的計數值,當它再次改變狀態時,保存定時器的計數值,從另一個時間減去一個時間,即每秒鐘一個頻率X ticks的時鐘週期數。您的差異是每個輸入脈衝的y ticks。 y/x滴答取消,每個脈衝獲得秒數。如果你正在測量一個滿週期上升沿到下降沿或者下降沿到下降沿,那麼它是同一個解決方案,不同的是哪個定時器採樣要被減去(例如上一個上升沿和當前上升沿)。有些微控制器能夠在輸入引腳發生狀態改變時(或者至少是相同的邊沿,上升或下降)中斷,並且您可能更喜歡使用該方法對定時器進行採樣,然後減去並得到每個週期的滴答等,以獲得每秒鐘的週期數(頻率)。

使用計時器可能會非常棘手,我總是通過使用計時器來閃爍LED,首先每秒進入一次球場,然後每5或10或30秒一次,然後將其與一秒鐘進行比較在手錶上或其他參考資料上進行驗證,以確認您的準確性,而不是這種或那種方式的十幾個百分點。這就建立了對定時器及其除數的理解,從那裏開始使用它來測量輸入。爲了確保我已經將gpio編程爲正確的(led演習已經涵蓋了一些)我對輸入引腳進行採樣,並使用輸入引腳狀態改變led狀態,然後通常可以看到led看到閃爍或暗淡的發光看到我能夠對gpio引腳進行採樣。然後將它們放在一起並在輸入改變狀態時對定時器進行採樣,如果需要中斷或其他,則首先輪詢。