各位大佬,我用的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;
這樣端口關不掉,請問大家該怎么改啊?
|