5. avr定时器/计数器1 快速PWM输出 (比较输出--快速PWM模式)
扫描二维码
随时随地手机看文章
快速PWM 模式(WGM13:0 = 5、6、 7、14 或15) 可用来产生高频的PWM 波形。快速PWM模式与其他PWM模式的不同之处是其单边斜坡工作方式。计数器从BOTTOM计到TOP,然后立即回到BOTTOM 重新开始。对于普通的比较输出模式,输出比较引脚OC1x在TCNT1 与OCR1x 匹配时置位,在TOP 时清零;对于反向比较输出模式,OCR1x 的动作正好相反。由于使用了单边斜坡模式,快速PWM 模式的工作频率比使用双斜坡的相位修正PWM 模式高一倍。此高频操作特性使得快速PWM 模式十分适合于功率调节,整流和DAC应用。高频可以减小外部元器件( 电感,电容) 的物理尺寸,从而降低系统成本。
工作于快速PWM 模式时,计数器的数值一直累加到固定数值0x00FF、0x01FF、0x03FF(WGM13:0 = 5、 6 或7)、ICR1 (WGM13:0 = 14) 或OCR1A (WGM13:0 = 15),然后在后面的一个时钟周期清零。
T/C1的外部比较输出引脚OC1A(PD5),OC2A(PD4),可以同时实现两路PWM输出。PWM频率取决与系统时钟频率和分频系数,PWM频率=系统时钟频率/(分频系数*分辨率),改变比较寄存器OCR1A,OCR1B就可以改变占空比。分辨率有8,9,10,可选择。8位最大计数0xFF,9位最大计数值0x1FF,10位最大计数值0x3FF。
操作步骤:
一、初始化I/O寄存器,PWM输出口设为输出:DDRD|=(1< 二、8位快速PWM模式设置:TCCR1A|=(0< 三、时钟分频设置:不分频 TCCR1B|=(0< 四、快速PWM的比较输出模式:输出通道(OC1A): TCCR1A|=(1< 输出通道(OC1B): TCCR1A|=(1< 五、比较寄存器付初值:OCR1A=0; OCR1B=0; //在程序改变它们的值。 六、中断中使能: SREG=0X80;