在ControlSUITE中的文件f2833xpwm.h中,有如下对ePWM进行初始化的语句:
#define PWM_INIT_MACRO(ch1,ch2,ch3,v) \
/* Setup Sync*/ \
(*ePWM[ch1]).TBCTL.bit.SYNCOSEL = 0; /* Pass through*/ \
(*ePWM[ch2]).TBCTL.bit.SYNCOSEL = 0; /* Pass through*/ \
(*ePWM[ch3]).TBCTL.bit.SYNCOSEL = 0; /* Pass through*/ \
为什么用(*ePWM[ch1]).TBCTL.bit.SYNCOSEL,而不用 EPwm1Regs.TBCTL.bit.SYNCOSEL?因为在文件DSP2833x_EPwm.h中是定义了extern volatile struct EPWM_REGS EPwm1Regs的
(*ePWM[ch1])和EPwm1Regs是如何对应的?
HeiHei:
如上图所示,你可以到在头文件中找到如上定义,定义了一个EPWM_REGS型的指针数组,数组里的变量是指向EPwmnRegs寄存器的。也就是说
(ePWM[ch1]) = &EPwm1Regs
*(ePWM[ch1]) = EPwm1Regs
TI中文支持网![TMS320F28379D: 导入例程出现故障Description Resource Path Location Type gmake: *** [gridconnectedinvlclfltr.obj] Error 1 gridConnectedInverterLCLFltr C/C++ Problem-TI中文支持网](https://www.ti2k.com/wp-content/uploads/ti2k/DeyiSupport_C2000_pastedimage1752114958744v1.jpg)


