菜鸟整理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输出引脚允许
} 楼主,帮你顶一下。 楼主,确定你的代码能用吗?
页:
[1]