ATmega 128控制輸出 pwm
#include
#include
int main()
{
DDRB|=0X20;//設(shè)置PWM波形輸出,與PB5口相連,詳見OCR1A=15625一句的注釋
DDRE=0X04;
PORTE=0X04;
DDRA=0XFF;
PORTA=0XFF;
TCCR1A|=0X82;//定時(shí)器/計(jì)數(shù)器1的控制寄存器A
//0x82中8是指COM1A1 COM1A0置為10,即比較匹配時(shí)OCn置0;
//0x82中2是指WGM11 WGM10置為10與下方控制寄存器A一同控制選擇快速PWM模式
TCCR1B|=0X1C;//定時(shí)器/計(jì)數(shù)器1的控制寄存器B;
//0x1c中1c是指將WGM13 WGM12置為11,CS12 CS11 CS10置為100
//WGM13 WGM12 WGM11 WGM10為1110時(shí),選擇快速PWM格式;
//CS12 CS11 CS10置為100表示選擇256分頻模式;
ICR1=62499;//設(shè)置TOP值,指當(dāng)計(jì)數(shù)器1計(jì)數(shù)到62499(即256分頻后一秒內(nèi)最大計(jì)數(shù)量為62500,
//因需1個(gè)計(jì)數(shù)時(shí)間為OCn置1,所以TOP值應(yīng)計(jì)到62499,如此,PWM波形的周期為1秒)
OCR1A=15625;//設(shè)置匹配值,當(dāng)達(dá)到15625時(shí)OCn置0,以此調(diào)節(jié)占空比,15625即為只有1/4的時(shí)間為高電平
//這里選用的是A比較匹配寄存器,所以此時(shí)OCn與PB5相接,若為OCR1B則OCn與PB6相接
sei();
return 0;
}