Re: PIC18F67K22,用GPIO數pulse

作者 Ryang 於 2019年01月09日 10:40:27
"計算一秒內有幾個pulse"?

這當然可以用 Capture Module 來完成的。
因為 Capture 可以設定進來的 Pulse 的 Trigger 是上升緣還是下降緣的觸發,或是這次是測量上升緣至下降緣的時間,這些都可以設定的。

因為量測的輸入時間較慢,所以 Time Base (Timer1/3/5) 的設定可以配合 Fosc/4 的除頻輸入 + 內建的 1:8 Prescale 來降速。這樣就可以算出最低的測量時間為多少。

如果輸入 Pulse 更慢的話,可以配合啟動 Timer 1/3/5 的中斷來配合計算。 在每次 Capture 抓完後將 Timer 歸零,這時開始抓氣輸入的變化。如果 Input Pulse 改變時,Timer 已經中斷過五次,且目前 Capture 的值為 1000 的話。

如果使用 32MHz Fosc, Timer 的計數頻率為 1MHz (32MHz/4/8 = 1mHz).
所計算出的 Pulse 時間為:

1MHz x ( 65536 x 5 + 1000)
1uS x 328680 = 0.328680 mS 的 Pulse 輸入。

來自: http://www.microchip.com.tw/newbb/viewtopic.php?forum=1&topic_id=22518&post_id=79144