DSP 28335 pwm占空比可调代码
时间: 2023-07-02 21:24:42 浏览: 497
以下是DSP 28335的PWM占空比可调代码示例:
首先需要在代码中包含DSP 28335的头文件和PWM控制模块的头文件:
```
#include "DSP2833x_Device.h"
#include "DSP2833x_Examples.h"
#include "DSP2833x_EPwm.h"
```
然后需要定义一个EPwm结构体和一个变量,用于存储PWM占空比:
```
//定义EPwm结构体
EPwm_Structure epwm1_info;
//定义PWM占空比变量
Uint16 pwm_duty = 0;
```
接下来需要对PWM控制模块进行初始化:
```
//PWM控制模块初始化
void InitEPwm1(void)
{
//初始化EPwm结构体
epwm1_info.TBPRD = 2000; //设置PWM周期为2000
epwm1_info.TBCTL.bit.CTRMODE = 0; //设置PWM计数器为上升计数
epwm1_info.CMPA.half.CMPA = 1000; //设置PWM占空比为50%
epwm1_info.AQCTLA.bit.CAU = 2; //设置PWM输出为高电平
epwm1_info.AQCTLA.bit.CAD = 1; //设置PWM输出为低电平
//将EPwm结构体的配置应用到PWM控制模块
InitEPwm1Gpio();
InitEPwm1Registers();
}
```
在初始化完成后,可以通过修改`epwm1_info.CMPA.half.CMPA`的值来改变PWM的占空比,从而控制电机的转速。例如,要将PWM占空比设置为75%:
```
pwm_duty = 1500; //75%的占空比
epwm1_info.CMPA.half.CMPA = pwm_duty;
```
完整的DSP 28335 PWM占空比可调代码示例请参考以下代码:
```
#include "DSP2833x_Device.h"
#include "DSP2833x_Examples.h"
#include "DSP2833x_EPwm.h"
//定义EPwm结构体
EPwm_Structure epwm1_info;
//定义PWM占空比变量
Uint16 pwm_duty = 0;
//PWM控制模块初始化
void InitEPwm1(void)
{
//初始化EPwm结构体
epwm1_info.TBPRD = 2000; //设置PWM周期为2000
epwm1_info.TBCTL.bit.CTRMODE = 0; //设置PWM计数器为上升计数
epwm1_info.CMPA.half.CMPA = 1000; //设置PWM占空比为50%
epwm1_info.AQCTLA.bit.CAU = 2; //设置PWM输出为高电平
epwm1_info.AQCTLA.bit.CAD = 1; //设置PWM输出为低电平
//将EPwm结构体的配置应用到PWM控制模块
InitEPwm1Gpio();
InitEPwm1Registers();
}
void main(void)
{
//将DSP 28335的时钟配置为150MHz
InitSysCtrl();
//初始化PWM控制模块
InitEPwm1();
//修改PWM占空比为75%
pwm_duty = 1500; //75%的占空比
epwm1_info.CMPA.half.CMPA = pwm_duty;
//启动PWM控制模块
EALLOW;
CpuSysRegs.PCLKCR0.bit.TBCLKSYNC = 1;
EDIS;
//循环等待
while(1)
{
}
}
```
阅读全文