d20062303732 发表于 2010-7-16 11:41:40

菜鸟整理mega64为例的定时器1的3个PWM,高手免看;之前被ABC搞到头晕。

/*之前被众多的寄存器ABC标号搞到头晕,后来花了一个下午看PDF和实验。
定时器0的pwm比较简单,主要发定时器1的,至于定时器3的与1差不多。
已经观察过波形正式可行(mega64_winavr)
贻笑大方了*/

void PWMT1_Init(void)
{
TCCR1B|=(0<<CS02)|(1<<CS01)|(1<<CS00);
TCCR1A|=(0<<WGM11)|(1<<WGM10);
TCCR1B|=(0<<WGM13)|(1<<WGM12);
//ABC 3个通道公用TCCR1(分为TCCR1A TCCR1B TCCR1C 3字节)
//以上为公共配置
//以下是个体配置

TCCR1A|=(1<<COM1A1)|(1<<COM1A0);//对应A路
TCCR1A|=(1<<COM1B1)|(1<<COM1B0);//对应B路//之前我太菜写成了TCCR1B|=(1<<COM1B1)|(1<<COM1B0);我晕。
TCCR1A|=(1<<COM1C1)|(1<<COM1C0);//对应C路

OCR1AH=0xFF;OCR1AL=0x80;//对应A路
OCR1BH=0xFF;OCR1BL=0x80;//对应B路
OCR1CH=0xFF;OCR1CL=0x80;//对应C路

DDRB|=1<<PB5;//pwm输出引脚允许
DDRB|=1<<PB6;//pwm输出引脚允许
DDRB|=1<<PB7;//pwm输出引脚允许
}

csq463276932 发表于 2011-3-19 17:07:27

楼主,帮你顶一下。

故乡的云0731 发表于 2018-1-8 14:53:38

楼主,确定你的代码能用吗?
页: [1]
查看完整版本: 菜鸟整理mega64为例的定时器1的3个PWM,高手免看;之前被ABC搞到头晕。