skyfish_1989 发表于 2014-6-16 10:57:37

Atmega128的PWM关闭时,怎么解决OC0端口电平随机问题

晶振7.3728M,CTC模式,关闭PWM时,将OC0端口置低貌似没有用
程序如下:

void timer0_init(void)
{
TCCR0 = 0x00; //stop
ASSR = 0x00; //set async mode
TCNT0 = 0x01; //set count
OCR0 = 229;
TCCR0 = 0x10;
}
void timer0_start(void)//开PWM
{
TCCR0 |= (0 << FOC0) | (1 << WGM01) | (0 << WGM00) | (0 << COM01)
| (1 << COM00) | (0 << CS02) | (1 << CS01) | (0 << CS00);
}
void timer0_stop(void)//关PWM
{
TCCR0 = 0X10;
PORTB &= ~(1<<PB4);
}
现象:关闭PWM时,电平很随机,为什么?希望关闭PWM时,OC0管脚为低电平

senjet 发表于 2014-6-16 12:34:36

关闭时加一句将OC0置为低电平的程序

skyfish_1989 发表于 2014-6-18 22:43:00

senjet 发表于 2014-6-16 12:34
关闭时加一句将OC0置为低电平的程序

谢谢建议,问题已解决,程序出BUG了,其他地方对OC0端口操作了
页: [1]
查看完整版本: Atmega128的PWM关闭时,怎么解决OC0端口电平随机问题