Other Parts Discussed in Thread: C2000WARE
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
部件号: TMS320F28379D
主题: C2000WARE 中讨论的其他器件
尊敬的先生/女士:
您能在下面的代码中解释一下如何实现同步吗? 因为我想更改 PWM 的同步顺序。
什么是功能的作用
1) SysCtl_setSyncInputConfig
2) ePWM_setSyncOutPulseMode
我尝试遵循 C:\ti\c2000\C2000Ware_6_00_01_00\driverlib\f2837xd\examples\cpu1\epwm
EPWM_ex3_synchronization 示例。 以下代码 也来自同一文件。
initEPWM (myEPWM1_BASE); //1
//
//初始化具有 300 TBCLK 相移的 PWM2
//
initEPWM (myEPWM2_base); //2
ePWM_selectPeriodLoadEvent (myEPWM2_base、ePWM_shadow_load_mode_sync);
EPWM_setPhaseShift (myEPWM2_base、150); //300
EPWM_setTimeBaseCounter (myEPWM2_base、150);
//
//通过 600 TBCLK 的相移初始化 PWM3
//
initEPWM (myEPWM3_base); //3
ePWM_selectPeriodLoadEvent (myEPWM3_base、ePWM_shadow_load_mode_sync);
EPWM_setPhaseShift (myEPWM3_base、300); //600
EPWM_setTimeBaseCounter (myEPWM3_BASE、300);
//
//使用 900 TBCLK 的相移初始化 PWM4
//
initEPWM (myEPWM4_BASE); //4
ePWM_selectPeriodLoadEvent (myEPWM4_BASE、ePWM_shadow_load_mode_sync);
EPWM_setPhaseShift (myEPWM4_BASE、450);
EPWM_setTimeBaseCounter (myEPWM4_BASE、450);
//
//在 CTR =0 时生成 ePWM1 SYNCO
//
ePWM_setSyncOutPulseMode (EPWM1_BASE、ePWM_SYNC_OUT_PULSE_ON_COUNTER_ZERO);
//
// ePWM2 使用 ePWM 1 SYNCO 作为其 SYNCIN。
// ePWM2 SYNCO 是从其 SYNCIN 生成的、即 ePWM1 SYNCO
//
EPWM_setSyncOutPulseMode (myEPWM2_BASE、EPWM_SYNC_OUT_PULSE_ON_EPWMxSYNCIN);
//
// ePWM4 使用 ePWM 1 SYNCO 作为其 SYNCIN。
//
SysCtl_setSyncInputConfig (SysCtl_SYNC_IN_EPWM4、SysCtl_SYNC_IN_SRC_EPWM1SYNCOUT);
//
//启用所有相移。
//
EPWM_enablePhaseShiftLoad (myEPWM2_base);
EPWM_enablePhaseShiftLoad (myEPWM3_base);
EPWM_enablePhaseShiftLoad (myEPWM4_BASE);
//
//启用到 PWM 的 SYNC 和时钟
//
SysCtl_enablePeripheral (SYSCTL_PERIPH_CLK_TBCLKSYNC);
谢谢。此致、
Prashant Gugle