dsp28069pwm控制代码
时间: 2023-08-08 15:05:59 浏览: 65
以下是一个基本的DSP28069 PWM控制示例代码:
```c
#include "F2837xD_device.h"
#include "F2837xD_Examples.h"
void InitEPwm1(void)
{
// 配置GPIO口
GPIO_SetupPinOptions(EPWM1A_GPIO, GPIO_OUTPUT, GPIO_ASYNC);
GPIO_SetupPinMux(EPWM1A_GPIO, 0, EPWM1A_MUX);
// 配置时钟
EPwm1Regs.TBCTL.bit.CLKDIV = 0;
EPwm1Regs.TBCTL.bit.HSPCLKDIV = 0;
EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN;
EPwm1Regs.TBCTL.bit.PHSEN = TB_DISABLE;
EPwm1Regs.TBCTL.bit.PRDLD = TB_SHADOW;
EPwm1Regs.TBCTL.bit.SYNCOSEL = TB_CTR_ZERO;
EPwm1Regs.TBCTL.bit.SWFSYNC = 0;
EPwm1Regs.TBPRD = 1500; // 设置周期为1500个时钟周期
// 配置PWM参数
EPwm1Regs.CMPA.bit.CMPA = 750; // 设置占空比为50%
EPwm1Regs.AQCTLA.bit.CAU = AQ_SET;
EPwm1Regs.AQCTLA.bit.CAD = AQ_CLEAR;
EPwm1Regs.DBCTL.bit.OUT_MODE = DB_FULL_ENABLE;
EPwm1Regs.DBCTL.bit.POLSEL = DB_ACTV_HIC;
EPwm1Regs.DBCTL.bit.IN_MODE = DBA_ALL;
EPwm1Regs.DBRED = 0;
EPwm1Regs.DBFED = 0;
EPwm1Regs.DBCTL.bit.OUTSWAP = 0;
// 启动PWM
EPwm1Regs.TBCTL.bit.PHSEN = TB_DISABLE;
EPwm1Regs.TBCTL.bit.PRDLD = TB_SHADOW;
EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN;
EPwm1Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_DISABLE;
}
void main(void)
{
InitSysCtrl();
InitEPwm1();
while(1)
{
// 此处可以添加PWM占空比和周期的设置代码
}
}
```
在此示例代码中,我们通过`InitEPwm1()`函数来初始化EPWM1模块的各项参数,包括GPIO口、时钟、PWM参数等,并在最后启动PWM输出。在程序的主循环中,我们可以通过修改PWM的占空比和周期等参数来控制PWM信号的输出。需要注意的是,在实际应用中,我们还需要根据具体的需求来调整PWM参数,以达到更好的控制效果。