static void pwm_init(void)
{
pwm_config_t pwmConfig;
pwm_input_capture_param_t captureConfig;
pwm_fault_param_t faultConfig;
/* Read the PWM default configuration */
PWM_GetDefaultConfig(&pwmConfig);
pwmConfig.clockSource = kPWM_BusClock;
pwmConfig.prescale = kPWM_Prescale_Divide_2;
pwmConfig.pairOperation = kPWM_Independent;
pwmConfig.initializationControl = kPWM_Initialize_LocalSync;
pwmConfig.reloadLogic = kPWM_ReloadImmediate;
pwmConfig.reloadSelect = kPWM_LocalReload;
pwmConfig.reloadFrequency = kPWM_LoadEveryOportunity;
pwmConfig.forceTrigger = kPWM_Force_LocalSync;
pwmConfig.enableDebugMode = true;
PWM_Init(PWM1_BASEADDR, kPWM_Module_3, &pwmConfig);
PWM_Init(PWM2_BASEADDR, kPWM_Module_3, &pwmConfig);
PWM_Init(PWM3_BASEADDR, kPWM_Module_1, &pwmConfig);
PWM_Init(PWM4_BASEADDR, kPWM_Module_1, &pwmConfig);
// fault configuration
PWM_FaultDefaultConfig(&faultConfig);
/* Sets up the PWM fault protection */
PWM_SetupFaults(PWM1_BASEADDR, kPWM_Fault_0, &faultConfig);
PWM_SetupFaults(PWM1_BASEADDR, kPWM_Fault_1, &faultConfig);
PWM_SetupFaults(PWM1_BASEADDR, kPWM_Fault_2, &faultConfig);
PWM_SetupFaults(PWM1_BASEADDR, kPWM_Fault_3, &faultConfig);
/* Set PWM fault disable mapping for submodule 0/1/2 */
PWM_SetupFaultDisableMap(PWM1_BASEADDR, kPWM_Module_0, kPWM_PwmA, kPWM_faultchannel_0, kPWM_FaultDisable_0 | kPWM_FaultDisable_1 | kPWM_FaultDisable_2 | kPWM_FaultDisable_3);
PWM_SetupFaultDisableMap(PWM1_BASEADDR, kPWM_Module_1, kPWM_PwmA, kPWM_faultchannel_0, kPWM_FaultDisable_0 | kPWM_FaultDisable_1 | kPWM_FaultDisable_2 | kPWM_FaultDisable_3);
PWM_SetupFaultDisableMap(PWM1_BASEADDR, kPWM_Module_2, kPWM_PwmA, kPWM_faultchannel_0, kPWM_FaultDisable_0 | kPWM_FaultDisable_1 | kPWM_FaultDisable_2 | kPWM_FaultDisable_3);
PWM_SetupFaultDisableMap(PWM1_BASEADDR, kPWM_Module_3, kPWM_PwmA, kPWM_faultchannel_0, kPWM_FaultDisable_0 | kPWM_FaultDisable_1 | kPWM_FaultDisable_2 | kPWM_FaultDisable_3);
/* Sets up the PWM fault protection */
PWM_SetupFaults(PWM2_BASEADDR, kPWM_Fault_0, &faultConfig);
PWM_SetupFaults(PWM2_BASEADDR, kPWM_Fault_1, &faultConfig);
PWM_SetupFaults(PWM2_BASEADDR, kPWM_Fault_2, &faultConfig);
PWM_SetupFaults(PWM2_BASEADDR, kPWM_Fault_3, &faultConfig);
/* Set PWM fault disable mapping for submodule 0/1/2 */
PWM_SetupFaultDisableMap(PWM2_BASEADDR, kPWM_Module_0, kPWM_PwmA, kPWM_faultchannel_0, kPWM_FaultDisable_0 | kPWM_FaultDisable_1 | kPWM_FaultDisable_2 | kPWM_FaultDisable_3);
PWM_SetupFaultDisableMap(PWM2_BASEADDR, kPWM_Module_1, kPWM_PwmA, kPWM_faultchannel_0, kPWM_FaultDisable_0 | kPWM_FaultDisable_1 | kPWM_FaultDisable_2 | kPWM_FaultDisable_3);
PWM_SetupFaultDisableMap(PWM2_BASEADDR, kPWM_Module_2, kPWM_PwmA, kPWM_faultchannel_0, kPWM_FaultDisable_0 | kPWM_FaultDisable_1 | kPWM_FaultDisable_2 | kPWM_FaultDisable_3);
PWM_SetupFaultDisableMap(PWM2_BASEADDR, kPWM_Module_3, kPWM_PwmA, kPWM_faultchannel_0, kPWM_FaultDisable_0 | kPWM_FaultDisable_1 | kPWM_FaultDisable_2 | kPWM_FaultDisable_3);
/* Sets up the PWM fault protection */
PWM_SetupFaults(PWM3_BASEADDR, kPWM_Fault_0, &faultConfig);
PWM_SetupFaults(PWM3_BASEADDR, kPWM_Fault_1, &faultConfig);
PWM_SetupFaults(PWM3_BASEADDR, kPWM_Fault_2, &faultConfig);
PWM_SetupFaults(PWM3_BASEADDR, kPWM_Fault_3, &faultConfig);
/* Set PWM fault disable mapping for submodule 0/1/2 */
PWM_SetupFaultDisableMap(PWM3_BASEADDR, kPWM_Module_0, kPWM_PwmA, kPWM_faultchannel_0, kPWM_FaultDisable_0 | kPWM_FaultDisable_1 | kPWM_FaultDisable_2 | kPWM_FaultDisable_3);
PWM_SetupFaultDisableMap(PWM3_BASEADDR, kPWM_Module_1, kPWM_PwmA, kPWM_faultchannel_0, kPWM_FaultDisable_0 | kPWM_FaultDisable_1 | kPWM_FaultDisable_2 | kPWM_FaultDisable_3);
PWM_SetupFaultDisableMap(PWM3_BASEADDR, kPWM_Module_2, kPWM_PwmA, kPWM_faultchannel_0, kPWM_FaultDisable_0 | kPWM_FaultDisable_1 | kPWM_FaultDisable_2 | kPWM_FaultDisable_3);
PWM_SetupFaultDisableMap(PWM3_BASEADDR, kPWM_Module_3, kPWM_PwmA, kPWM_faultchannel_0, kPWM_FaultDisable_0 | kPWM_FaultDisable_1 | kPWM_FaultDisable_2 | kPWM_FaultDisable_3);
/* Sets up the PWM fault protection */
PWM_SetupFaults(PWM4_BASEADDR, kPWM_Fault_0, &faultConfig);
PWM_SetupFaults(PWM4_BASEADDR, kPWM_Fault_1, &faultConfig);
PWM_SetupFaults(PWM4_BASEADDR, kPWM_Fault_2, &faultConfig);
PWM_SetupFaults(PWM4_BASEADDR, kPWM_Fault_3, &faultConfig);
/* Set PWM fault disable mapping for submodule 0/1/2 */
PWM_SetupFaultDisableMap(PWM4_BASEADDR, kPWM_Module_0, kPWM_PwmA, kPWM_faultchannel_0, kPWM_FaultDisable_0 | kPWM_FaultDisable_1 | kPWM_FaultDisable_2 | kPWM_FaultDisable_3);
PWM_SetupFaultDisableMap(PWM4_BASEADDR, kPWM_Module_1, kPWM_PwmA, kPWM_faultchannel_0, kPWM_FaultDisable_0 | kPWM_FaultDisable_1 | kPWM_FaultDisable_2 | kPWM_FaultDisable_3);
PWM_SetupFaultDisableMap(PWM4_BASEADDR, kPWM_Module_2, kPWM_PwmA, kPWM_faultchannel_0, kPWM_FaultDisable_0 | kPWM_FaultDisable_1 | kPWM_FaultDisable_2 | kPWM_FaultDisable_3);
PWM_SetupFaultDisableMap(PWM4_BASEADDR, kPWM_Module_3, kPWM_PwmA, kPWM_faultchannel_0, kPWM_FaultDisable_0 | kPWM_FaultDisable_1 | kPWM_FaultDisable_2 | kPWM_FaultDisable_3);
/* Configure the capture input of the PWM for one shot polling */
captureConfig.captureInputSel = true;
captureConfig.edge0 = kPWM_RiseAndFallEdge;
captureConfig.edge1 = kPWM_Disable;
captureConfig.enableOneShotCapture = false;
captureConfig.edgeCompareValue = 1;
PWM_SetupInputCapture(PWM1_BASEADDR, kPWM_Module_3, kPWM_PwmA, &captureConfig);
PWM_SetupInputCapture(PWM2_BASEADDR, kPWM_Module_3, kPWM_PwmA, &captureConfig);
PWM_SetupInputCapture(PWM3_BASEADDR, kPWM_Module_1, kPWM_PwmA, &captureConfig);
PWM_SetupInputCapture(PWM4_BASEADDR, kPWM_Module_1, kPWM_PwmA, &captureConfig);
PWM_SetPwmLdok(PWM1_BASEADDR, kPWM_Control_Module_3, true);
PWM_SetPwmLdok(PWM2_BASEADDR, kPWM_Control_Module_3, true);
PWM_SetPwmLdok(PWM3_BASEADDR, kPWM_Control_Module_1, true);
PWM_SetPwmLdok(PWM4_BASEADDR, kPWM_Control_Module_1, true);
PWM_StartTimer(PWM1_BASEADDR, kPWM_Control_Module_3);
PWM_StartTimer(PWM2_BASEADDR, kPWM_Control_Module_3);
PWM_StartTimer(PWM3_BASEADDR, kPWM_Control_Module_1);
PWM_StartTimer(PWM4_BASEADDR, kPWM_Control_Module_1);
}