我在我的項目中使用msp430f2013微控制器..在那我需要計算傳入的脈衝信號頻率列車....我不知道該怎麼做....可以任何人都可以在這裏幫助我..示例代碼對我來說更加有用....提前感謝捕獲傳入的信號
Q
捕獲傳入的信號
1
A
回答
2
您需要閱讀微控制器手冊,然後弄清楚如何設置一個可以測量兩個脈衝沿之間的間隔(例如從一個前沿到下一個)。的頻率f,將這個時間間隔,T的倒數,即
f = 1/t
1
有多種方法可以做到這一點,也許最簡單的理解是設置一個定時器作爲一個簡單的計數器。輪詢輸入引腳,當它改變狀態時,保存定時器的計數值,當它再次改變狀態時,保存定時器的計數值,從另一個時間減去一個時間,即每秒鐘一個頻率X ticks的時鐘週期數。您的差異是每個輸入脈衝的y ticks。 y/x滴答取消,每個脈衝獲得秒數。如果你正在測量一個滿週期上升沿到下降沿或者下降沿到下降沿,那麼它是同一個解決方案,不同的是哪個定時器採樣要被減去(例如上一個上升沿和當前上升沿)。有些微控制器能夠在輸入引腳發生狀態改變時(或者至少是相同的邊沿,上升或下降)中斷,並且您可能更喜歡使用該方法對定時器進行採樣,然後減去並得到每個週期的滴答等,以獲得每秒鐘的週期數(頻率)。
使用計時器可能會非常棘手,我總是通過使用計時器來閃爍LED,首先每秒進入一次球場,然後每5或10或30秒一次,然後將其與一秒鐘進行比較在手錶上或其他參考資料上進行驗證,以確認您的準確性,而不是這種或那種方式的十幾個百分點。這就建立了對定時器及其除數的理解,從那裏開始使用它來測量輸入。爲了確保我已經將gpio編程爲正確的(led演習已經涵蓋了一些)我對輸入引腳進行採樣,並使用輸入引腳狀態改變led狀態,然後通常可以看到led看到閃爍或暗淡的發光看到我能夠對gpio引腳進行採樣。然後將它們放在一起並在輸入改變狀態時對定時器進行採樣,如果需要中斷或其他,則首先輪詢。
相關問題
- 1. Golang捕獲信號
- 2. posix_memalign是否捕獲信號?
- 3. 如何捕獲鏽信號
- 4. 捕獲SIGVTALRM信號,cp
- 5. 在linux中捕獲信號
- 6. Android:捕獲SIGSEGV信號JNI
- 7. 在星號中捕獲反向信號
- 8. 如何獲取信號捕獲SIGABRT
- 9. Qt:捕獲和傳遞信號的最佳機制
- 10. Python的 - 捕獲所有信號
- 11. NAudio如何捕獲播放的信號
- 12. C shell,父類捕獲的信號仍然進入子進程。
- 13. 如何中斷epoll_pwait捕獲信號
- 14. GDB:捕獲信號並繼續調試
- 15. 如何在PowerShell中捕獲信號?
- 16. 在Elixir escript中捕獲出口信號
- 17. 如何從Q(雙)spinbox捕獲信號
- 18. 捕獲SIGINT(等信號)在Windows
- 19. PyQt多QDilaog類信號捕獲
- 20. 乾淨地在Perl中捕獲信號
- 21. 在Qt中捕獲音頻信號
- 22. VBScript - 捕獲結束任務信號
- 23. MousePressEvent捕獲信號不必要 - PyQt4
- 24. Elixir:試着捕獲退出信號
- 25. 爲什麼信號不會被捕獲?
- 26. 如何捕獲語法錯誤信號
- 27. 退出信號未被PyQt捕獲
- 28. RPython中的捕捉信號
- 29. Android:如何從傳入的短信中獲取電話號碼?
- 30. 如何獲取Python中傳入信號的進程ID?