Thread 中讨论的其他器件:controlSUITE
工具/软件:Code Composer Studio
我需要生成两个 PWM 信号、相移180度、频率10kHz、CMPA 和三角比较。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:Code Composer Studio
我需要生成两个 PWM 信号、相移180度、频率10kHz、CMPA 和三角比较。
您好、先生、
我已经按照下面所述对其进行了修改、尽管它没有显示任何错误、但我无法通过 DSO 获取 O/p、请帮助我、或向我发送一些我可以参考的示例。
我的程序如下所示
#include "F28x_Project.h"//设备头文件和示例 include 文件
void InitEPwm1Examples(void);
_interrupt void epwm1_ISR (void);
#define ePWM_CMP_UP 1.
#define ePWM_CMP_DOWN 0
void main (void)
{
InitSysCtrl();
CpuSysRegs.PCLKCR2.bit.EPWM1=1;
InitEPwm1Gpio();
Dint;
InitPieCtrl();
IER = 0x0000;
IFR = 0x0000;
InitPieVectTable();
EALLOW;//这是写入 EALLOW 受保护寄存器所必需的
PieVectTable.EPWM1_INT =&epwm1_ISR;
EDIS;//这是禁止写入 EALLOW 受保护寄存器所必需的
EALLOW;
CpuSysRegs.PCLKCR0.bit.TBCLKSYNC =0;
EDIS;
InitEPwm1Examples();
EALLOW;
CpuSysRegs.PCLKCR0.bit.TBCLKSYNC=1;
EDIS;
for (;;)
{
ASM (" NOP");
}
}
_interrupt void epwm1_ISR (void)
{
EPwm1Regs.ETCLR.bit.INT = 1;
}
空 InitEPwm1Examples()
{
//设置 TBCLK
EPwm1Regs.TBPRD = 25000;//设置计时器周期801 TBCLK
EPwm1Regs.TBPHS.bit.TBPHS = 0x0000;//相位为0
EPwm1Regs.TBCTR = 0x0000;//清除计数器
//设置操作
EPwm1Regs.AQCTLA.bit.CAU = AQ_SET;//在事件 A 上设置 PWM1A、递增
//计数
EPwm1Regs.AQCTLA.bit.CAD = AQ_CLEAR;//在事件 A 上清除 PWM1A、
//倒计数
EPwm1Regs.AQCTLB.bit.CBU = AQ_SET;//在事件 B 上设置 PWM1B、向上
//计数
EPwm1Regs.AQCTLB.bit.CBD = AQ_CLEAR;//在事件 B 上清除 PWM1B、
}
//倒计数