初始化代码如下
void pwm1_init()
{
TCCR1B=0X00;//STOP
TCNT1H=0X00;
TCNT1L=0X00;
ICR1H=0X24;//SET TOP
ICR1L=0;
OCR1AH=0X02;
OCR1AL=0XEE;
OCR1BH=0X02;
OCR1BL=0XEE;
OCR1CH=0X02;
OCR1CL=0XEE;//initial
TCCR1A|=(1<<WGM31);//WGM3:0=1010 to set top=9216
TCCR1A|=BIT(COM3A1)|BIT(COM3B1);//OC1A AND OC1B: NORMAL OUTPUT
TCCR1B|=(1<<CS31)|(1<<WGM33);//PRESCALE 8
PORTB|= 0X80;//WHEN PB7=1 OC2||OC1C
DDRB|=0B11100000;
}
……
void pwm3_init()
{
TCCR3B=0X00;//STOP
TCNT3H=0X00;
TCNT3L=0X00;
OCR3AH=0X24;
OCR3AL=0X00;//set top
OCR3BH=0X02;
OCR3BL=0XEE;
OCR3CH=0X02;
OCR3CL=0XEE;//initial
TCCR3A|=(3<<WGM30);//WGM3:0=1010 to set top=9216
TCCR3A|=BIT(COM3A1)|BIT(COM3B1);//OC1A AND OC1B: NORMAL OUTPUT
TCCR3B|=(1<<CS31)|(1<<WGM33);//PRESCALE 8
PORTE|=0B00110000;
DDRE|=0B00110000;
}
写入单片机实验以后,发现OC1C和OC3C都不能输出。我已经尝试不同板子,都不行。现在最怀疑是端口复用了,此外还可能是ICCAVR编译环境的问题,求大神解答!!