|
马老师,
你好,在使用AVR169中遇到一个问题,我自己弄了几天都没搞明白,特来向你请教。程序如下
//-------------------------------------
void timer1_init(void) //产生 BEEP 的输出波形
{
TCCR1A = 0x00 ; //stop 停止定时器T2
TCCR1B = 0x00 ;
TCNT1H = 0x00 ; //set count
TCNT1L = 0x00 ;
OCR1AH = 0x03 ; //set compare 采用CTC的波形输出模式, 产生一个160us的中断
OCR1AL = 0xFF ;
OCR1BH = 0x03 ; //set compare 采用CTC的波形输出模式, 产生一个160us的中断
OCR1BL = 0xFF ;
TCCR1A = 0xF3 ; // 8为快速pwm
TCCR1B = 0x09 ; // 无预分频
TIFR1 = 0x00 ;
TIMSK1 = 0x00 ; //start interrupt益处功能/比较输出功能中断不使
}
//-------------------------------------------------
case 0:
LCDDR1 &= 0xFE ;
OCR1BH = 0x03 ;
OCR1BL = 0xFF ;
break ;
case 1:
LCDDR1 |= (1<<0) ;
OCR1BH = 0x03 ;
OCR1BL = 0xC3 ;
break ;
case 2:
LCDDR1 &= 0xDF ;
OCR1BH = 0x03 ;
OCR1BL = 0xB5 ;
break ;
case 3:
LCDDR1 &= 0x7F ;
OCR1BH = 0x03 ;
OCR1BL = 0xA5 ;
break ;
//-------------------------------------------------
当我改变 OCR1B 的时候,单片机输出引脚 OCR1B 上的电平随着 OCR1B1H/OCR1BL的改变而改变,
我使用示波器看 OCR1B 引脚输出的波形,它的 Vmax 随着 OCR1B1H/OCR1BL的改变而改变,
我反复看了数据手册,都没弄明白,特地来向你请教! |
|