×
单片机 > 单片机程序设计 > 详情

AVR 定时器相位修正PWM 模式使用

发布时间:2020-06-02 发布时间:
|
相位修正PWM和快速PWM的区别在于,相位修正PWM在达到上限值后做减一操作,然后到达匹配值后端口再发生变化。

其他特性和快速PWM基本一至。

                                        相位修正PWM时序图

                                            频率计算公式

参考代码:

#include
void FreCorrectPWM(void)
{
DDRD_Bit4 = 1; //    OC1B 管脚设置为输出
DDRD_Bit5 = 1; //    OC1A 管脚设置为输出

TCCR1A=(0<                  // OC1A 作为上限值 电平取反   OC1B 作为比较值 比较匹配时清零,到达上限值是置1
                 // TCCR1A ==> COM1A1 , COM1A0 , COM1B1 , COM1B0 , FOC1A , FOC1B , WGM11 , WGM10
                 //               0        1        1        0       无关    无关     1       1
TCCR1B=(1<                 // 波形产生模式11 , 64分频
                 // TCCR1B ==> ICNC1 , ICES1 , - , WGM13 , WGM12 , CS12 , CS11 , CS10
                 //             无关    无关         1       0      0      1      1

OCR1A=1727;   // 晶振频率 11.0592MHz , 设定 100Hz PWM信号 , 64分频
OCR1B=345;     // 为高电平持续时间
}

void main(void)
{
    FreCorrectPWM();
}

关键字:AVR  定时器  相位修正  PWM

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
C51 特殊功能寄存器SFR的名称和地址