• 单片机TM4C123学习(九):PWM


    1.头文件与变量定义

    #include "tiva_pwm.h"                // PWM

    2.初始化

    // PWM 初始化,频率为1000,占空比为0
        M1PWM7_init(1000, 0);
    
    // 具体函数内容
    void M1PWM7_init(uint32_t freq, float duty)
    {
        //设置PWM时钟为系统时钟的1分频
        SysCtlPWMClockSet(SYSCTL_PWMDIV_1);
        SysCtlPeripheralEnable(SYSCTL_PERIPH_PWM1);
        //配置引脚为PWM功能
        SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
        GPIOPinConfigure(GPIO_PF3_M1PWM7);
        GPIOPinTypePWM(GPIOF, Pin3);    //M1PWM7
        //配置 PWM1 Generator3·发生器
        PWMGenConfigure(PWM1_BASE, PWM_GEN_3, PWM_GEN_MODE_UP_DOWN|PWM_GEN_MODE_NO_SYNC);
        //配置 PWM1 Generator3 周期
        PWMGenPeriodSet(PWM1_BASE, PWM_GEN_3, SysCtlClockGet()/freq - 1);
        //配置 PWM1 Generator3 占空比
        PWMPulseWidthSet(PWM1_BASE, PWM_OUT_7, PWMGenPeriodGet(PWM1_BASE, PWM_GEN_3)*duty - 1);
        //使能 PWM1 输出
        PWMOutputState(PWM1_BASE, PWM_OUT_7_BIT, true);
        //使能 PWM1 发生器模块
        PWMGenEnable(PWM1_BASE, PWM_GEN_3);
    }

    改变占空比

    M1PWM7_set_duty(duty);

    // 具体函数内容
    void
    M1PWM7_set_duty(float duty) { //配置 PWM1 Generator3 占空比 PWMPulseWidthSet(PWM1_BASE, PWM_OUT_7, PWMGenPeriodGet(PWM1_BASE, PWM_GEN_3)*duty - 1); PWMOutputState(PWM1_BASE, PWM_OUT_7_BIT, true); //使能 PWM1 ·发生器模块 PWMGenEnable(PWM1_BASE, PWM_GEN_3); }

    3.调用示例

    *由于PF3对应的是扩展板上的白色LED灯,灭灯操作为

    PWMOutputState(PWM1_BASE, PWM_OUT_7_BIT, false);    // 灭灯

     4.管脚

  • 相关阅读:
    反射
    IDEA配置数据库
    配置idea的maven镜像为aliyun
    蓝桥---芯片测试(思维)
    汉诺塔(思维、DP思想)
    立方数(质因子、优化)
    碎碎念(DP)
    牛牛战队的比赛地(三分)
    子段乘积(尺取、逆元)
    子段异或(位运算)
  • 原文地址:https://www.cnblogs.com/pursuit1996/p/5070464.html
Copyright © 2020-2023  润新知