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.管腳

