使用Atmega64單片機T/C3生成PWM信號

1、首先確定工作模式爲 “快速PWM模式”。計數器上限值由OCRnA中的值確定。結合下圖選擇模式15。

圖1
圖1

2、在模式15的情況下,根據下圖可知,

   COMnX1:COMnX0=0:1,OCnA只能輸出50%的佔空比,頻率可調。

   COMnX1:COMnX0=1:0,OCnA輸出高電平。(原因看圖3)

   COMnX1:COMnX0=1:1,OCnA輸出低電平。(原因看圖3)

   OCnB和OCnC可以輸出任意佔空比PWM波形。

 

圖2
 

 

圖 3

 根據要求編寫程序

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信號頻率是其他引腳的二分之一。 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章