Thread 中讨论的其他器件:controlSUITE
您好!
我需要知道、如果我配置 ePWM、会发生什么情况、如下所述
INTSEL = 1 (CTR = 0时的 Genrate 中断);
CMPA 加载模式在 CTR=0时为影子;
如果我在 ISR 中更新 CMPA 值、将为比较前一个或当前获取哪个值? 换句话说、第一个 ISR 将生成、还是 CMPA 值将更新?
EPwm1_ISR ()//在 CTR=0时的额定电压
{
//CPA 在此加载、那么电流将流向我在此处加载的活动寄存器、还是在最后一个中断中加载到影子寄存器中的上一个?
}
我想在这种情况下、它会延迟一个周期?
在 HVACI_Scalar 的控制套件示例中、在此示例中、它们使用的配置与上述配置类似、我想在这种情况下、三相正弦 PWM 的生成会延迟一个周期? 我在下面提到了示例配置。
/ /
//使用 EPWM1时基启用 CNT_ZERO 中断
EPwm1Regs.ETSEL.bit.INTEN = 1;//启用 EPWM1INT 生成
EPwm1Regs.ETSEL.bit.INTSEL = 1;//启用中断 CNT_ZERO 事件
EPwm1Regs.ETPS.bit.INTPRD = 1;//在第1个事件上生成中断
EPwm1Regs.ETCLR.bit.INT = 1;//启用更多中断
EALLOW;//这是写入 EALLOW 受保护寄存器所必需的
PieVectTable.EPWM1_INT = MainISR;
EDIS;
/*------------------
F2803x 比较控制寄存器的初始化常量。
-------------------------------------------------- *
#define CMPCTL_INIT_STATE (LOADAMODE_ZRO +\
LOADBMODE_ZRO +\
SHDWAMODE_SHADOW +\
SHDWBMODE_SHADOW)
// MainISR
中断空 MainISR (空)
{
//----------------------------------
//连接 SVGEN_MF 模块的输入并调用空间矢量发生器。 宏
//----------------------------------
svgen_MF1.gain = vhz1.VoltOut;
svgen_MF1.Freq = vhz1.Freq;
SVGENMF_MACRO (svgen_MF1);
//----------------------------------
//连接 PWM_DRV 模块的输入并调用 PWM 信号生成宏
//----------------------------------
pwm1.Mfunc1 = svgen_MF1.Ta;
pwm1.MfuncC2 = svgen_MF1.TB;
pwm1.MfuncC3 = svgen_MF1.TC;
PWM_MACRO (1、2、3、pwm1)//计算新的 PWM 比较值
}