1、首先確定工作模式爲 “快速PWM模式”。計數器上限值由OCRnA中的值確定。結合下圖選擇模式15。
2、在模式15的情況下,根據下圖可知,
COMnX1:COMnX0=0:1,OCnA只能輸出50%的佔空比,頻率可調。
COMnX1:COMnX0=1:0,OCnA輸出高電平。(原因看圖3)
COMnX1:COMnX0=1:1,OCnA輸出低電平。(原因看圖3)
OCnB和OCnC可以輸出任意佔空比PWM波形。
根據要求編寫程序
void T3_init(void)//定時器1,掃描檢測io口電平變化
{
DDRE|=0x38;//設置PE3,PE4,PE5爲輸出
TCCR3A=0x6B;//COM3A1 COM3A0=1 0時,OC3A輸出50%佔空比的PWM信號
//COM3A1 COM3A0 COM3B1 COM3B0 COM3C1 COM3C0 WGM31 WGM30
0 1 1 0 1 0 1 1
//WGM31:WGM30=1 1 採用15模式快速PWM
//A、B比較輸出模式,匹配A時取反,匹配B時置0(10).
TCCR3B=0X1A;//WGM33:WGM32=1 1 計數器數值累加到OCRn。 8分頻
//ICNC3 ICES3 – WGM33 WGM32 CS32 CS31 CS30
1 1 0 1 0
// CS2 CS1 CS0=0 1 0 ;8分頻
TCNT3=0x0000;//設置定時器的初始值
ETIMSK=0x00;//0x04;//溢出中斷使能
OCR3A=9999; //PWM信號頻率=8M/(8*(1+9999))=100Hz
OCR3B=1000; //OCR3B/OCR3A 佔空比
OCR3C=2000;
}
由於OCA3在一個計數週期反轉一次信號,所以該腳的PWM信號頻率是其他引腳的二分之一。