• AVR 定时器快速PWM模式使用


    PWM很常用,AVR自带内部PWM功能,分为快速PWM模式和相位修正PWM模式。

     

    我们这里选择方式15 ,由OCR1A保存上限值,由OCR1B保存匹配值,所以输出管脚 OCR1A不能输PWM,只能有OCR1B输出PWM信号。

     

    如果用方式 5,6,7模式 上限值是固定的,所以我们就可以用OCR1A和OCR1B保存匹配值

     

    OCR1A和OCR1B都可以输出PWM信号。

     

    快速PWM时序图

     

    根据此公式计算出OCR1A和OCR1B的数值

     

    OCR1A:

     

    1,11059200 / 100 /64 = 1728                         // 11.0592MHz晶振系数 / 100Hz频率 / 64分频

     

    2,1728 - 1 = 1727                                        //得到上限值,赋值给OCR1A

     

    OCR1B:

     

    1,1727 / 5   =    345.4    ( 取值为345 )          //得到匹配值,设定为2ms,赋值给OCR1B

     

    100Hz表示每秒震动100次,所以周期是1s / 100 = 0.01s 即10ms

     

    100Hz周期是10ms,要定时2ms即用 1727 / 5 =345.4 取值为345

     

    所以也可以知道产生的是占空比为20%的PWM信号

     

    测试代码:

     

    #include <iom16.h>

     

    void FastPWM(void)

     

    {

     

    DDRD_Bit4 = 1; //    OC1B 管脚设置为输出

     

    DDRD_Bit5 = 1; //    OC1A 管脚设置为输出

     

    TCCR1A=(0<<COM1A1)|(1<<COM1A0)|(1<<COM1B1)|(0<<COM1B0)|(1<<WGM11)|(1<<WGM10);

     

    // OC1A 作为上限值 电平取反   OC1B 作为比较值 比较匹配时清零,到达上限值是置1

     

    // TCCR1A ==> COM1A1 , COM1A0 , COM1B1 , COM1B0 , FOC1A , FOC1B , WGM11 , WGM10

     

    //               0        1        1        0       无关    无关     1       1

     

    TCCR1B=(1<<WGM13)|(1<<WGM12)|(0<<CS12)|(1<<CS11)|(1<<CS10);

     

    // 波形产生模式15 , 64分频

     

    // TCCR1B ==> ICNC1 , ICES1 , - , WGM13 , WGM12 , CS12 , CS11 , CS10

     

    //             无关    无关          1       1      0      1      1

     

    OCR1A=1727;   // 晶振频率 11.0592MHz , 设定 100Hz PWM信号 , 64分频

     

    OCR1B=345;     // 为2ms的高电平持续时间

     

    }

     

    void main(void)

     

    {

     

    FastPWM();

     

    }

  • 相关阅读:
    jna学习---windows下一个完整调用
    ndk ffmpeg
    POJ_3264_Interval Tree 最大最小值之差
    ROBY_筛选法求素数 与 打表 学习, 试验可以开的数组大小, 10位int数组
    POJ_2186_Tarjan Popular_Cows
    POJ_1961 KMP next的典型应用 类似于 poj2406
    HDOJ_1711_KMP 求匹配位置
    POJ_2312_BFS:priority_queue -- Battle City
    POJ_1915_Double BFS Knight Moves
    POJ_3414_BFS pots
  • 原文地址:https://www.cnblogs.com/zhugeanran/p/8541189.html
Copyright © 2020-2023  润新知