Hi,
I have checked your code, as you have changed the PWM driver, I think you have the following issue.
You have to use the original code to initialize kPWM_Module_0, kPWM_Module_1,kPWM_Module_2 independently, the code can not be changed, otherwise, the synchronization among three module has problem.
/* Use full cycle reload */
pwmConfig.reloadLogic = kPWM_ReloadPwmFullCycle;
/* PWM A & PWM B form a complementary PWM pair */
pwmConfig.pairOperation = kPWM_ComplementaryPwmA;
pwmConfig.enableDebugMode = true;
/* Initialize submodule 0 */
if (PWM_Init(BOARD_PWM_BASEADDR, kPWM_Module_0, &pwmConfig) == kStatus_Fail)
{
PRINTF("PWM initialization failed\n");
return 1;
}
/* Initialize submodule 1 */
pwmConfig.clockSource = kPWM_Submodule0Clock;
pwmConfig.initializationControl = kPWM_Initialize_MasterSync;
if (PWM_Init(BOARD_PWM_BASEADDR, kPWM_Module_1, &pwmConfig) == kStatus_Fail)
{
PRINTF("PWM initialization failed\n");
return 1;
}
/* Initialize submodule 2 the same way as submodule 1 */
if (PWM_Init(BOARD_PWM_BASEADDR, kPWM_Module_2, &pwmConfig) == kStatus_Fail)
{
PRINTF("PWM initialization failed\n");
return 1;
}
Secondly, I think it is okay to delete the base->OUTEN line in PWM_SetupPwm() function, and add the base->OUTEN line after the PWM_StartTimer() in main.
Pls have a try
BR
XiangJun Rong