用CCS写一个 tms320f28035 pwm发波程序
时间: 2023-11-21 10:06:36 浏览: 231
以下是一个简单的 TMS320F28035 的 PWM 发波程序示例:
```c
#include "DSP2803x_Device.h"
#include "DSP2803x_Examples.h"
#define PWM_PERIOD 1500 // PWM 周期
#define DUTY_CYCLE 750 // 占空比
// 初始化 PWM
void InitPWM(void)
{
EALLOW;
CpuSysRegs.PCLKCR0.bit.TBCLKSYNC = 0; // 停止时钟
EDIS;
EPwm1Regs.TBPRD = PWM_PERIOD; // PWM 周期
EPwm1Regs.TBPHS.bit.TBPHS = 0; // 相位
EPwm1Regs.TBCTR = 0; // 计数器
EPwm1Regs.CMPA.half.CMPA = DUTY_CYCLE; // 占空比
// 设置 EPWM1A 输出
EPwm1Regs.AQCTLA.bit.ZRO = AQ_SET; // 低电平
EPwm1Regs.AQCTLA.bit.CAU = AQ_CLEAR; // 高电平
EALLOW;
CpuSysRegs.PCLKCR0.bit.TBCLKSYNC = 1; // 启动时钟
EDIS;
}
// 主函数
int main(void)
{
InitSysCtrl(); // 初始化系统控制
InitPWM(); // 初始化 PWM
while (1) {} // 死循环
}
```
该程序使用 EPWM1A 通道输出一个占空比为 50% 的 PWM 波形。可以根据自己的需求修改 PWM 周期和占空比。需要注意的是,需要在程序中初始化系统控制,并启用时钟才能使用 PWM。
阅读全文