void timer1_init(void) { // TCCR1A = 0x21; //一路PWM,匹配清零 TCCR1A|=(1<<COM1B1)|(1<<WGM10); // // TCCR1B = 0x09; //快速PWM模式,8位,预分频1 频率为:32Khz TCCR1B|=(1<<WGM12)|(1<<CS10); } 我用端口输出PWM 为什么会有中断
CPU:ATMEGA48V 使用8位...快速PWM 0C1B作为输出脚
现象:示波器在10MS时候 大概是 20MS的PWM输出 12MS的电平输出 很平均 一般把OCR1B设置0x007f 不会出现这种现象 大于0x007f的 时候 电平输出高电平 小于0x007f的 时候 电平输出 低电平 这个现象 为什么呢?PWM 不是很平均的方波吗?
PS.我改变OCR1B的时候 占空比也会发生正确改变
|