快速PWM有两种模式:WGM02:WGM00=3 or WGM02:WGM00=7,两种模式的操作如下。
Mode | WGM2 | WGM1 | WGM0 | T/C工作模式 |
TOP |
OCRx更新 | TOV标志设置 |
0 | 0 | 0 | 0 | 正常 | 0xFF | 立即 | MAX |
1 | 0 | 0 | 1 | 相位修正PWM | 0xFF | TOP | BOTTOM |
2 | 0 | 1 | 0 | CTC | OCRA | 立即 | MAX |
3 | 0 | 1 | 1 | 快速PWM | 0xFF | TOP | MAX |
4 | 1 | 0 | 0 | 保留 | - | - | - |
5 | 1 | 0 | 1 |
相位修正PWM |
OCRA | TOP | BOTTOM |
6 | 1 | 1 | 0 | 保留 | - | - | - |
7 | 1 | 1 | 1 |
快速PWM |
OCRA | TOP | TOP |
其中,模式3是一般意义上的PWM,引脚电平在计数器值等于OCR0x和TOP时发生翻转。当COM01=1,COM00=0时,引脚OCRx在比较匹配发生时清零,计数到TOP时置位,此时寄存器OCR0x的值越大,占空比越大;当COM01=1,COM00=1时,引脚OCRx在比较匹配发生时置位,计数到TOP时清零,此时寄存器OCR0x的值越大,占空比越小。
模式7实际上不能产生占空比变化的PWM。此模式下TCNT0=OCR0x时计数器重新开始计数,而OCRx引脚的电平要么一直为高(COM01=1,COM00=0),要么一直为高(COM01=1,COM00=1)。在模式7下,通过计数器溢出中断时将引脚电平翻转,可以产生占空比50%的PWM,此PWM的频率可以通过改变OCR0x的值来调整。
文章评论(0条评论)
登录后参与讨论