PWM使用的時候,有幾個問題沒弄懂,特此請教一下,以前在STM32下使用過PWM,細節比較清晰,查找W801手冊沒查到相關介紹。
1、PWM計數器:該計數器是多少位的計數器?該計數器什麼時候清零?能不能手動軟件清零?還是只能溢出後自動清零?比如啟動PWM輸出,然後停止PWM輸出,這時候的計數器是保持還是清零?再次啟動PWM輸出的時候,計數器是從0開始,還是延續原來的計數值?這涉及到第一個PWM波形,有時候對這要求比較嚴。
2、PWM輸出電平:從手冊上看可以達到100%,不能達到0。也就是可以通過調整占空比輸出固定高電平,不能輸出固定低電平。如果有時候需要輸出固定低電平(固定高電平和固定低電平都需要)怎麼處理?PWM停止後輸出電平是高還是低或者是隨機?我這有個地方對停止後的電平有固定要求。
3、PWM捕獲:需要計算捕獲波形的占空比,被測PWM波頻率範圍比較寬。因為不知道計數器什麼時候清零,那兩個捕獲值不知道如何計算,而且有可能在捕獲之前經曆過溢出。
PWM的配置的IO是浮空,也就是說PWM停止後是處於浮空狀態?那只要在對應IO口外接下拉電阻,是不是相當於停止PWM就是低電平?那就不需要注釋以上語句了,duty=0的時候,停止PWM,輸出低,duty=255的時候輸出高電平。
不注釋也可以 但是你重新啟動要start 不能直接設置duty
@Mrzhao 嗯,是的,一旦設為占空比零,後面就要重新啟動,幸虧提醒,不然又是一個坑。另外根據測試,好像捕獲時計數器每次碰到上升沿或下降沿都會自動清零,這樣捕獲到的數據就是對應電平的時間。