簡單歸納一下
相位修正PWM 與快速PWM 一樣,不同的方波產生模式決定了TOP值是固定的,還是任意的。如在試驗中選擇11(任意的TOP), OC1A 就要作為犧牲,僅能輸出50%占空比的方波,OCR1A 決定了輸出頻率,而OCR1B 決定了PWM 的占空比。OCR1A可以作為OCR1B 的參考值,相位修正PWM 有低頻率而且PWM 精確度高的特性。除此之外,既然OC1A 被犧牲了,那么COM1A1:0 的設置也需要合理。
我們稍微整理一下編程時的步驟:
1. 將PD4~PD5 引腳設置為輸出(默認為低電平)。DDRD|=BIT(4)|BIT(5);
2. 設置方波產生模式,WGM12~10,試驗中是以模式11 為例。TCCR1A|=BIT(0)|BIT(1); TCCR1B|=BIT(4);
3. 設置OC1A 與OC1B 的引腳規則COM1A1:0=0,1 COM1B1:0=1,0。TCCR1A|=BIT(6)|BIT(5);
4. 設置預分頻(時鐘源)。TCCR1B|=BIT(0)|BIT(1);
5. 設置OCR1A 初值,決定輸出頻率。OCR1A=864;
6. 設置OCR1B 初值,決定PWM 方波的占空比。OCR1B=173
7. 編輯相關的中斷函數(如果有的話)。
最后補充一下,當OCR1A 最為TOP 值時,OC1A 僅能輸出50%占空比的方波,而該輸出的頻率是OC1B 的一般而已。
注意:PD4 是OC1B,PD5 是OC1A。
|