|
簡單歸納一下:
快速PWM,是由匹配值和TOP 值決定的。而TOP值可以是固定的(方波產(chǎn)生模式5,6,7),又或者可編程(方波產(chǎn)生模式14,15)。方波產(chǎn)生模式5,6,7 分別對(duì)應(yīng)0x00ff,0x01ff,0x03ff 的TOP 值,而模式14,15 的TOP 值分別為1CR1,和OCR1A 來決定。從視頻教程中我們知道模式15 需要犧牲OC1A 作為代價(jià),(OC1A=PD5)OCR1A 決定了PWM 輸出的頻率,而OCR1B 決定了PWM 不同的占空比輸出。換一句話說,OCR1A 是OCR1B 求出占空比的參考值。(上一頁有詳細(xì)的介紹),雖然OC1A 被犧牲了,但是,OC1A 還可以很合理的設(shè)置依然可以工作于近似CTC 模式(勉強(qiáng)算是吧)。這里打上小小的補(bǔ)充:如果方波產(chǎn)生的模式是5,6,7,僅要稍微修改一下概念就可以了。
在編程的時(shí)候需要如下的步驟:
1.設(shè)置PD4~5 為輸出(默認(rèn)為低電平)。DDRD|=BIT(4)|BIT(5);
2.決定方波產(chǎn)生模式,試驗(yàn)中為15。OCR1A|=BIT(0)|BIT(1); OCR1B|=BIT(3)|BIT(4);
3.決定OC1A,和OC1B 的工作方式,試驗(yàn)中快速PWM,OC1A 作為犧牲,工作近似CTC 模式。OC1B,卻是匹配時(shí)清零,TOP 時(shí)置一。OCR1A|=BIT(5)|BIT(6);
4.決定頻率,OCR1A 設(shè)初值。
5.決定PWM 輸出占空比,OCR1B 設(shè)初值。
|
|