各位大佬,我用的mega128单片机,用定时器2做了PWM输出想把它输出可控,一直没关掉,试了初值置0的方式可以关掉,请问直接对寄存器为进行设置怎样关?
/*定时器2初始化函数*/
void Timer2_Init( void )
{
PORTB = 0x00;
DDRB = 0xff;
TCCR2 |= (1<<WGM21) | (1<<WGM20); //快速PWM模式
TCCR2 |= (1<<CS22) | (0<<CS21) | (1<<CS20); //1024分频
//TCCR2 |= (1<<COM21) | (0<<COM20); //比较匹配发生时OC2清零,计数到TOP时OC2置位
//TCNT2=200;
//OCR2=timer2_init_count;
TIMSK |= (1<<TOIE2); //T/C2溢出中断使能
}
我下面用的时候写成了这样:
case 0x06:
beep();
if ( m%2 )
{
data( 0x0A, 0x01 );
TCCR2 |= (1<<COM21) | (0<<COM20);
}
else
{
data( 0x0A, 0x00 );
TCCR2 |= (0<<COM21) | (0<<COM20);
PORTB &= ~BIT(7);
PORTB &= ~BIT(7);
PORTB &= ~BIT(7);
}
m++;
break;
这样端口关不掉,请问大家该怎么改啊?
|