mcxa154 pwm溢出中断触发adc采集

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

mcxa154 pwm溢出中断触发adc采集

814 次查看
1668834026
Contributor I

hello,现在碰到个难题,我想使用pwm的溢出标志去触发两个adc外设分别采集三路模拟信号,发现配置完后,有pwm输出但是无法触发adc中断获取到采集信息。sdk中也没相关应用,所以可以帮忙看下是什么问题吗?

下面是配置代码。

1. adc配置

const lpadc_config_t ADC0_config = {
  .enableInDozeMode = false,
  .conversionAverageMode = kLPADC_ConversionAverage256,
  .enableAnalogPreliminary = true,
  .powerUpDelay = 0x80UL,
  .referenceVoltageSource = kLPADC_ReferenceVoltageAlt3,
  .powerLevelMode = kLPADC_PowerLevelAlt4,
  .triggerPriorityPolicy = kLPADC_TriggerPriorityExceptionDisabled,
  .enableConvPause = false,
  .convPauseDelay = 0UL,
  .FIFOWatermark = 0UL,
};
lpadc_conv_command_config_t ADC0_commandsConfig[3] = {
  {
    .sampleChannelMode = kLPADC_SampleChannelSingleEndSideA,
    .channelNumber = 4U,
    .chainedNextCommandNumber = 2,
    .enableAutoChannelIncrement = false,
    .loopCount = 0UL,
    .hardwareAverageMode = kLPADC_HardwareAverageCount1,
    .sampleTimeMode = kLPADC_SampleTimeADCK3,
    .hardwareCompareMode = kLPADC_HardwareCompareDisabled,
    .hardwareCompareValueHigh = 0UL,
    .hardwareCompareValueLow = 0UL,
    .conversionResolutionMode = kLPADC_ConversionResolutionHigh,
    .enableWaitTrigger = true
  },
  {
    .sampleChannelMode = kLPADC_SampleChannelSingleEndSideA,
    .channelNumber = 5U,
    .chainedNextCommandNumber = 3,
    .enableAutoChannelIncrement = false,
    .loopCount = 0UL,
    .hardwareAverageMode = kLPADC_HardwareAverageCount1,
    .sampleTimeMode = kLPADC_SampleTimeADCK3,
    .hardwareCompareMode = kLPADC_HardwareCompareDisabled,
    .hardwareCompareValueHigh = 0UL,
    .hardwareCompareValueLow = 0UL,
    .conversionResolutionMode = kLPADC_ConversionResolutionHigh,
    .enableWaitTrigger = true
  },
  {
    .sampleChannelMode = kLPADC_SampleChannelSingleEndSideA,
    .channelNumber = 7U,
    .chainedNextCommandNumber = 0,
    .enableAutoChannelIncrement = false,
    .loopCount = 0UL,
    .hardwareAverageMode = kLPADC_HardwareAverageCount1,
    .sampleTimeMode = kLPADC_SampleTimeADCK3,
    .hardwareCompareMode = kLPADC_HardwareCompareDisabled,
    .hardwareCompareValueHigh = 0UL,
    .hardwareCompareValueLow = 0UL,
    .conversionResolutionMode = kLPADC_ConversionResolutionHigh,
    .enableWaitTrigger = false
  }
};
lpadc_conv_trigger_config_t ADC0_triggersConfig[1] = {
  {
    .targetCommandId = 1,
    .delayPower = 0UL,
    .priority = 0,
    .enableHardwareTrigger = true
  },
};

static void ADC0_init(void) {
  /* Initialize LPADC converter */
  LPADC_Init(ADC0_PERIPHERAL, &ADC0_config);
  /* Perform auto calibration */
  LPADC_DoAutoCalibration(ADC0_PERIPHERAL);
  /* Configure conversion command 1. */
  LPADC_SetConvCommandConfig(ADC0_PERIPHERAL, ADC0_ADC0_CMD1, &ADC0_commandsConfig[0]);
  /* Configure conversion command 2. */
  LPADC_SetConvCommandConfig(ADC0_PERIPHERAL, ADC0_ADC0_CMD2, &ADC0_commandsConfig[1]);
  /* Configure conversion command 3. */
  LPADC_SetConvCommandConfig(ADC0_PERIPHERAL, ADC0_ADC0_CMD3, &ADC0_commandsConfig[2]);
  /* Configure trigger 0. */
  LPADC_SetConvTriggerConfig(ADC0_PERIPHERAL, ADC0_TRIGGER_0, &ADC0_triggersConfig[0]);
  
  LPADC_EnableInterrupts(ADC0_PERIPHERAL, (kLPADC_Trigger0CompletionInterruptEnable));
  
  /* Interrupt vector ADC1_IRQn priority settings in the NVIC. */
  NVIC_SetPriority(ADC0_IRQn, 0);
  /* Enable interrupt ADC1_IRQN request in the NVIC */
  EnableIRQ(ADC0_IRQn);  
}

const lpadc_config_t ADC1_config = {
  .enableInDozeMode = false,
  .conversionAverageMode = kLPADC_ConversionAverage256,
  .enableAnalogPreliminary = true,
  .powerUpDelay = 0x80UL,
  .referenceVoltageSource = kLPADC_ReferenceVoltageAlt3,
  .powerLevelMode = kLPADC_PowerLevelAlt4,
  .triggerPriorityPolicy = kLPADC_TriggerPriorityExceptionDisabled,
  .enableConvPause = false,
  .convPauseDelay = 0UL,
  .FIFOWatermark = 0UL,
};
lpadc_conv_command_config_t ADC1_commandsConfig[3] = {
  {
    .sampleChannelMode = kLPADC_SampleChannelSingleEndSideA,
    .channelNumber = 8U,
    .chainedNextCommandNumber = 2,
    .enableAutoChannelIncrement = false,
    .loopCount = 0UL,
    .hardwareAverageMode = kLPADC_HardwareAverageCount1,
    .sampleTimeMode = kLPADC_SampleTimeADCK3,
    .hardwareCompareMode = kLPADC_HardwareCompareDisabled,
    .hardwareCompareValueHigh = 0UL,
    .hardwareCompareValueLow = 0UL,
    .conversionResolutionMode = kLPADC_ConversionResolutionHigh,
    .enableWaitTrigger = true
  },
  {
    .sampleChannelMode = kLPADC_SampleChannelSingleEndSideA,
    .channelNumber = 9U,
    .chainedNextCommandNumber = 3,
    .enableAutoChannelIncrement = false,
    .loopCount = 0UL,
    .hardwareAverageMode = kLPADC_HardwareAverageCount1,
    .sampleTimeMode = kLPADC_SampleTimeADCK3,
    .hardwareCompareMode = kLPADC_HardwareCompareDisabled,
    .hardwareCompareValueHigh = 0UL,
    .hardwareCompareValueLow = 0UL,
    .conversionResolutionMode = kLPADC_ConversionResolutionHigh,
    .enableWaitTrigger = true
  },
  {
    .sampleChannelMode = kLPADC_SampleChannelSingleEndSideA,
    .channelNumber = 3U,
    .chainedNextCommandNumber = 0,
    .enableAutoChannelIncrement = false,
    .loopCount = 0UL,
    .hardwareAverageMode = kLPADC_HardwareAverageCount1,
    .sampleTimeMode = kLPADC_SampleTimeADCK3,
    .hardwareCompareMode = kLPADC_HardwareCompareDisabled,
    .hardwareCompareValueHigh = 0UL,
    .hardwareCompareValueLow = 0UL,
    .conversionResolutionMode = kLPADC_ConversionResolutionHigh,
    .enableWaitTrigger = false
  }
};
lpadc_conv_trigger_config_t ADC1_triggersConfig[1] = {
  {
    .targetCommandId = 1,
    .delayPower = 0UL,
    .priority = 0,
    .enableHardwareTrigger = true
  },
  
};

static void ADC1_init(void) {
  /* Initialize LPADC converter */
  LPADC_Init(ADC1_PERIPHERAL, &ADC1_config);
  /* Perform auto calibration */
  LPADC_DoAutoCalibration(ADC1_PERIPHERAL);
  /* Configure conversion command 1. */
  LPADC_SetConvCommandConfig(ADC1_PERIPHERAL, ADC1_ADC1_CMD1, &ADC1_commandsConfig[0]);
  /* Configure conversion command 2. */
  LPADC_SetConvCommandConfig(ADC1_PERIPHERAL, ADC1_ADC1_CMD2, &ADC1_commandsConfig[1]);
  /* Configure conversion command 3. */
  LPADC_SetConvCommandConfig(ADC1_PERIPHERAL, ADC1_ADC1_CMD3, &ADC1_commandsConfig[2]);
  /* Configure trigger 0. */
  LPADC_SetConvTriggerConfig(ADC1_PERIPHERAL, ADC1_TRIGGER_0, &ADC1_triggersConfig[0]);
  
  NVIC_SetPriority(ADC1_IRQn, 0);
}

 

2. pwm配置

pwm_config_t FLEXPWM0_SM0_config = {
  .clockSource = kPWM_BusClock,
  .prescale = kPWM_Prescale_Divide_1,
  .pairOperation = kPWM_ComplementaryPwmA,
  .initializationControl = kPWM_Initialize_LocalSync,
  .reloadLogic = kPWM_ReloadPwmFullCycle,
  .reloadSelect = kPWM_LocalReload,
  .reloadFrequency = kPWM_LoadEveryOportunity,
  .forceTrigger = kPWM_Force_Local,
  .enableDebugMode = true,
};

pwm_signal_param_t FLEXPWM0_SM0_pwm_function_config[2]= {
  {
    .pwmChannel = kPWM_PwmA,
    .dutyCyclePercent = 50U,
    .level = kPWM_HighTrue,
    .faultState = kPWM_PwmFaultState2,
    .pwmchannelenable = true,
    .deadtimeValue = 58U
  },
  {
    .pwmChannel = kPWM_PwmB,
    .dutyCyclePercent = 50U,
    .level = kPWM_HighTrue,
    .faultState = kPWM_PwmFaultState2,
    .pwmchannelenable = true,
    .deadtimeValue = 58U
  },
};

pwm_config_t FLEXPWM0_SM1_config = {
  .clockSource = kPWM_Submodule0Clock,
  .prescale = kPWM_Prescale_Divide_1,
  .pairOperation = kPWM_ComplementaryPwmA,
  .initializationControl = kPWM_Initialize_MasterSync,//,
  .reloadLogic = kPWM_ReloadPwmFullCycle,
  .reloadSelect = kPWM_LocalReload,//kPWM_MasterReload,
  .reloadFrequency = kPWM_LoadEveryOportunity,
  .forceTrigger = kPWM_Force_Local,//kPWM_Force_Master,
  .enableDebugMode = true,
};

pwm_signal_param_t FLEXPWM0_SM1_pwm_function_config[2]= {
  {
    .pwmChannel = kPWM_PwmA,
    .dutyCyclePercent = 0U,
    .level = kPWM_HighTrue,
    .faultState = kPWM_PwmFaultState2,
    .pwmchannelenable = true,
    .deadtimeValue = 58U
  },
  {
    .pwmChannel = kPWM_PwmB,
    .dutyCyclePercent = 0U,
    .level = kPWM_HighTrue,
    .faultState = kPWM_PwmFaultState2,
    .pwmchannelenable = true,
    .deadtimeValue = 58U
  },
};

pwm_config_t FLEXPWM0_SM2_config = {
  .clockSource = kPWM_BusClock,
  .prescale = kPWM_Prescale_Divide_1,
  .pairOperation = kPWM_ComplementaryPwmA,
  .initializationControl = kPWM_Initialize_MasterSync,
  .reloadLogic = kPWM_ReloadPwmFullCycle,
  .reloadSelect = kPWM_MasterReload,
  .reloadFrequency = kPWM_LoadEveryOportunity,
  .forceTrigger = kPWM_Force_Master,
  .enableDebugMode = true,
};

pwm_signal_param_t FLEXPWM0_SM2_pwm_function_config[2]= {
  {
    .pwmChannel = kPWM_PwmA,
    .dutyCyclePercent = 0U,
    .level = kPWM_HighTrue,
    .faultState = kPWM_PwmFaultState2,
    .pwmchannelenable = true,
    .deadtimeValue = 58U
  },
  {
    .pwmChannel = kPWM_PwmB,
    .dutyCyclePercent = 0U,
    .level = kPWM_HighTrue,
    .faultState = kPWM_PwmFaultState2,
    .pwmchannelenable = true,
    .deadtimeValue = 58U
  },
};

const pwm_fault_input_filter_param_t FLEXPWM0_faultInputFilter_config = {
  .faultFilterPeriod = 2U,
  .faultFilterCount = 4U,
  .faultGlitchStretch = true
};
const pwm_fault_param_t FLEXPWM0_Fault0_fault_config = {
  .faultClearingMode = kPWM_ManualSafety,
  .faultLevel = true,
  .enableCombinationalPath = true,
  .recoverMode = kPWM_RecoverFullCycle,
};
const pwm_fault_param_t FLEXPWM0_Fault1_fault_config = {
  .faultClearingMode = kPWM_Automatic,
  .faultLevel = true,
  .enableCombinationalPath = true,
  .recoverMode = kPWM_NoRecovery
};
const pwm_fault_param_t FLEXPWM0_Fault2_fault_config = {
  .faultClearingMode = kPWM_Automatic,
  .faultLevel = true,
  .enableCombinationalPath = true,
  .recoverMode = kPWM_NoRecovery
};
const pwm_fault_param_t FLEXPWM0_Fault3_fault_config = {
  .faultClearingMode = kPWM_Automatic,
  .faultLevel = true,
  .enableCombinationalPath = true,
  .recoverMode = kPWM_NoRecovery
};

static void FLEXPWM0_init(void) {
  /* Initialize PWM submodule SM0 main configuration */
  PWM_Init(FLEXPWM0_PERIPHERAL, FLEXPWM0_SM0, &FLEXPWM0_SM0_config);
  /* Initialize PWM submodule SM1 main configuration */
  PWM_Init(FLEXPWM0_PERIPHERAL, FLEXPWM0_SM1, &FLEXPWM0_SM1_config);
  /* Initialize PWM submodule SM2 main configuration */
  PWM_Init(FLEXPWM0_PERIPHERAL, FLEXPWM0_SM2, &FLEXPWM0_SM2_config);
  /* Initialize PWM submodule SM1 phase delay */
  PWM_SetPhaseDelay(FLEXPWM0_PERIPHERAL, FLEXPWM0_UNUSED_CHANNEL_PARAM, FLEXPWM0_SM1, FLEXPWM0_SM1_DELAY_CYCLES);
  /* Initialize PWM submodule SM2 phase delay */
  PWM_SetPhaseDelay(FLEXPWM0_PERIPHERAL, FLEXPWM0_UNUSED_CHANNEL_PARAM, FLEXPWM0_SM2, FLEXPWM0_SM2_DELAY_CYCLES);
  /* Initialize fault input filter configuration */
  PWM_SetupFaultInputFilter(FLEXPWM0_PERIPHERAL, &FLEXPWM0_faultInputFilter_config);
  /* Initialize fault channel 0 fault Fault0 configuration */
  PWM_SetupFaults(FLEXPWM0_PERIPHERAL, FLEXPWM0_F0_FAULT0, &FLEXPWM0_Fault0_fault_config);
  /* Initialize fault channel 0 fault Fault1 configuration */
  PWM_SetupFaults(FLEXPWM0_PERIPHERAL, FLEXPWM0_F0_FAULT1, &FLEXPWM0_Fault1_fault_config);
  /* Initialize fault channel 0 fault Fault2 configuration */
  PWM_SetupFaults(FLEXPWM0_PERIPHERAL, FLEXPWM0_F0_FAULT2, &FLEXPWM0_Fault2_fault_config);
  /* Initialize fault channel 0 fault Fault3 configuration */
  PWM_SetupFaults(FLEXPWM0_PERIPHERAL, FLEXPWM0_F0_FAULT3, &FLEXPWM0_Fault3_fault_config);
  /* Initialize deadtime logic input for the channel A */
  PWM_SetupForceSignal(FLEXPWM0_PERIPHERAL, FLEXPWM0_SM0, FLEXPWM0_SM0_A, kPWM_UsePwm);
  /* Initialize deadtime logic input for the channel B */
  PWM_SetupForceSignal(FLEXPWM0_PERIPHERAL, FLEXPWM0_SM0, FLEXPWM0_SM0_B, kPWM_UsePwm);
  /* Initialize deadtime logic input for the channel A */
  PWM_SetupForceSignal(FLEXPWM0_PERIPHERAL, FLEXPWM0_SM1, FLEXPWM0_SM1_A, kPWM_UsePwm);
  /* Initialize deadtime logic input for the channel B */
  PWM_SetupForceSignal(FLEXPWM0_PERIPHERAL, FLEXPWM0_SM1, FLEXPWM0_SM1_B, kPWM_UsePwm);
  /* Initialize deadtime logic input for the channel A */
  PWM_SetupForceSignal(FLEXPWM0_PERIPHERAL, FLEXPWM0_SM2, FLEXPWM0_SM2_A, kPWM_UsePwm);
  /* Initialize deadtime logic input for the channel B */
  PWM_SetupForceSignal(FLEXPWM0_PERIPHERAL, FLEXPWM0_SM2, FLEXPWM0_SM2_B, kPWM_UsePwm);
  /* Setup PWM output setting for submodule SM0 */
  PWM_SetupPwm(FLEXPWM0_PERIPHERAL, FLEXPWM0_SM0, FLEXPWM0_SM0_pwm_function_config, 2U, kPWM_CenterAligned, FLEXPWM0_SM0_COUNTER_FREQ_HZ, FLEXPWM0_SM0_SM_CLK_SOURCE_FREQ_HZ);
  /* Setup PWM output setting for submodule SM1 */
  PWM_SetupPwm(FLEXPWM0_PERIPHERAL, FLEXPWM0_SM1, FLEXPWM0_SM1_pwm_function_config, 2U, kPWM_CenterAligned, FLEXPWM0_SM1_COUNTER_FREQ_HZ, FLEXPWM0_SM1_SM_CLK_SOURCE_FREQ_HZ);
  /* Setup PWM output setting for submodule SM2 */
  PWM_SetupPwm(FLEXPWM0_PERIPHERAL, FLEXPWM0_SM2, FLEXPWM0_SM2_pwm_function_config, 2U, kPWM_CenterAligned, FLEXPWM0_SM2_COUNTER_FREQ_HZ, FLEXPWM0_SM2_SM_CLK_SOURCE_FREQ_HZ);
  
    /* Initialize output trigger for VAL4 compare of submodule SM0 */
  PWM_OutputTriggerEnable(FLEXPWM0_PERIPHERAL, FLEXPWM0_SM0, kPWM_ValueRegister_1, true);
  
  /* Enable interrupts from main config of the submodule SM0 */
  PWM_EnableInterrupts(FLEXPWM0_PERIPHERAL, FLEXPWM0_SM0, (kPWM_ReloadInterruptEnable | kPWM_ReloadErrorInterruptEnable));
  /* Initialize LDOK for update of the working registers */
  PWM_SetPwmLdok(FLEXPWM0_PERIPHERAL, (kPWM_Control_Module_0 | kPWM_Control_Module_1 | kPWM_Control_Module_2), true);
  /* Start selected counters */
  PWM_StartTimer(FLEXPWM0_PERIPHERAL, (kPWM_Control_Module_0 | kPWM_Control_Module_1 | kPWM_Control_Module_2));
}

 

3. inputmux配置

    INPUTMUX_Init(INPUTMUX0);
    INPUTMUX_AttachSignal(INPUTMUX0, 0U, kINPUTMUX_Pwm0Sm0OutTrig0ToAdc0Trigger);
    INPUTMUX_AttachSignal(INPUTMUX0, 0U, kINPUTMUX_Pwm0Sm0OutTrig0ToAdc1Trigger);

 

 

标签 (1)
0 项奖励
回复
2 回复数

750 次查看
Harry_Zhang
NXP Employee
NXP Employee

Hi @1668834026 

关于您的

3. inputmux配置

    INPUTMUX_Init(INPUTMUX0);
    INPUTMUX_AttachSignal(INPUTMUX0, 0U, kINPUTMUX_Pwm0Sm0OutTrig0ToAdc0Trigger);
    INPUTMUX_AttachSignal(INPUTMUX0, 0U, kINPUTMUX_Pwm0Sm0OutTrig0ToAdc1Trigger);

请问您是否使能了inputmux的时钟

    /* Enable INPUTMUX0 */
    CLOCK_EnableClock(kCLOCK_InputMux0);

BR

Harry

0 项奖励
回复

748 次查看
1668834026
Contributor I

嗯,我对了一下。INPUTMUX_Init中是有使能时钟的

void INPUTMUX_Init(void *base)
{
#if !(defined(FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL) && FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL)
#if defined(FSL_FEATURE_INPUTMUX_HAS_NO_INPUTMUX_CLOCK_SOURCE) && FSL_FEATURE_INPUTMUX_HAS_NO_INPUTMUX_CLOCK_SOURCE
#if (defined(FSL_FEATURE_SOC_SCT_COUNT) && (FSL_FEATURE_SOC_SCT_COUNT > 0))
    CLOCK_EnableClock(kCLOCK_Sct);
#endif /* FSL_FEATURE_SOC_SCT_COUNT */
    CLOCK_EnableClock(kCLOCK_Dma);
#else
    CLOCK_EnableClock(s_inputmuxClockName[INPUTMUX_GetInstance(base)]);
#endif /* FSL_FEATURE_INPUTMUX_HAS_NO_INPUTMUX_CLOCK_SOURCE */
#endif /* FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL */

#if defined(INPUTMUX_RESETS_ARRAY)
    RESET_ReleasePeripheralReset(s_inputmuxResets[INPUTMUX_GetInstance(base)]);
#endif
}

 

0 项奖励
回复
%3CLINGO-SUB%20id%3D%22lingo-sub-2346874%22%20slang%3D%22zh-CN%22%20mode%3D%22CREATE%22%3Emcxa154%20pwm%E6%BA%A2%E5%87%BA%E4%B8%AD%E6%96%AD%E8%A7%A6%E5%8F%91adc%E9%87%87%E9%9B%86%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2346874%22%20slang%3D%22zh-CN%22%20mode%3D%22CREATE%22%3E%3CP%3Ehello%EF%BC%8C%E7%8E%B0%E5%9C%A8%E7%A2%B0%E5%88%B0%E4%B8%AA%E9%9A%BE%E9%A2%98%EF%BC%8C%E6%88%91%E6%83%B3%E4%BD%BF%E7%94%A8pwm%E7%9A%84%E6%BA%A2%E5%87%BA%E6%A0%87%E5%BF%97%E5%8E%BB%E8%A7%A6%E5%8F%91%E4%B8%A4%E4%B8%AAadc%E5%A4%96%E8%AE%BE%E5%88%86%E5%88%AB%E9%87%87%E9%9B%86%E4%B8%89%E8%B7%AF%E6%A8%A1%E6%8B%9F%E4%BF%A1%E5%8F%B7%EF%BC%8C%E5%8F%91%E7%8E%B0%E9%85%8D%E7%BD%AE%E5%AE%8C%E5%90%8E%EF%BC%8C%E6%9C%89pwm%E8%BE%93%E5%87%BA%E4%BD%86%E6%98%AF%E6%97%A0%E6%B3%95%E8%A7%A6%E5%8F%91adc%E4%B8%AD%E6%96%AD%E8%8E%B7%E5%8F%96%E5%88%B0%E9%87%87%E9%9B%86%E4%BF%A1%E6%81%AF%E3%80%82sdk%E4%B8%AD%E4%B9%9F%E6%B2%A1%E7%9B%B8%E5%85%B3%E5%BA%94%E7%94%A8%EF%BC%8C%E6%89%80%E4%BB%A5%E5%8F%AF%E4%BB%A5%E5%B8%AE%E5%BF%99%E7%9C%8B%E4%B8%8B%E6%98%AF%E4%BB%80%E4%B9%88%E9%97%AE%E9%A2%98%E5%90%97%EF%BC%9F%3C%2FP%3E%3CP%3E%E4%B8%8B%E9%9D%A2%E6%98%AF%E9%85%8D%E7%BD%AE%E4%BB%A3%E7%A0%81%E3%80%82%3C%2FP%3E%3CP%3E%3CSTRONG%3E1.%20adc%E9%85%8D%E7%BD%AE%3C%2FSTRONG%3E%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-markup%22%3E%3CCODE%3Econst%20lpadc_config_t%20ADC0_config%20%3D%20%7B%0A%20%20.enableInDozeMode%20%3D%20false%2C%0A%20%20.conversionAverageMode%20%3D%20kLPADC_ConversionAverage256%2C%0A%20%20.enableAnalogPreliminary%20%3D%20true%2C%0A%20%20.powerUpDelay%20%3D%200x80UL%2C%0A%20%20.referenceVoltageSource%20%3D%20kLPADC_ReferenceVoltageAlt3%2C%0A%20%20.powerLevelMode%20%3D%20kLPADC_PowerLevelAlt4%2C%0A%20%20.triggerPriorityPolicy%20%3D%20kLPADC_TriggerPriorityExceptionDisabled%2C%0A%20%20.enableConvPause%20%3D%20false%2C%0A%20%20.convPauseDelay%20%3D%200UL%2C%0A%20%20.FIFOWatermark%20%3D%200UL%2C%0A%7D%3B%0Alpadc_conv_command_config_t%20ADC0_commandsConfig%5B3%5D%20%3D%20%7B%0A%20%20%7B%0A%20%20%20%20.sampleChannelMode%20%3D%20kLPADC_SampleChannelSingleEndSideA%2C%0A%20%20%20%20.channelNumber%20%3D%204U%2C%0A%20%20%20%20.chainedNextCommandNumber%20%3D%202%2C%0A%20%20%20%20.enableAutoChannelIncrement%20%3D%20false%2C%0A%20%20%20%20.loopCount%20%3D%200UL%2C%0A%20%20%20%20.hardwareAverageMode%20%3D%20kLPADC_HardwareAverageCount1%2C%0A%20%20%20%20.sampleTimeMode%20%3D%20kLPADC_SampleTimeADCK3%2C%0A%20%20%20%20.hardwareCompareMode%20%3D%20kLPADC_HardwareCompareDisabled%2C%0A%20%20%20%20.hardwareCompareValueHigh%20%3D%200UL%2C%0A%20%20%20%20.hardwareCompareValueLow%20%3D%200UL%2C%0A%20%20%20%20.conversionResolutionMode%20%3D%20kLPADC_ConversionResolutionHigh%2C%0A%20%20%20%20.enableWaitTrigger%20%3D%20true%0A%20%20%7D%2C%0A%20%20%7B%0A%20%20%20%20.sampleChannelMode%20%3D%20kLPADC_SampleChannelSingleEndSideA%2C%0A%20%20%20%20.channelNumber%20%3D%205U%2C%0A%20%20%20%20.chainedNextCommandNumber%20%3D%203%2C%0A%20%20%20%20.enableAutoChannelIncrement%20%3D%20false%2C%0A%20%20%20%20.loopCount%20%3D%200UL%2C%0A%20%20%20%20.hardwareAverageMode%20%3D%20kLPADC_HardwareAverageCount1%2C%0A%20%20%20%20.sampleTimeMode%20%3D%20kLPADC_SampleTimeADCK3%2C%0A%20%20%20%20.hardwareCompareMode%20%3D%20kLPADC_HardwareCompareDisabled%2C%0A%20%20%20%20.hardwareCompareValueHigh%20%3D%200UL%2C%0A%20%20%20%20.hardwareCompareValueLow%20%3D%200UL%2C%0A%20%20%20%20.conversionResolutionMode%20%3D%20kLPADC_ConversionResolutionHigh%2C%0A%20%20%20%20.enableWaitTrigger%20%3D%20true%0A%20%20%7D%2C%0A%20%20%7B%0A%20%20%20%20.sampleChannelMode%20%3D%20kLPADC_SampleChannelSingleEndSideA%2C%0A%20%20%20%20.channelNumber%20%3D%207U%2C%0A%20%20%20%20.chainedNextCommandNumber%20%3D%200%2C%0A%20%20%20%20.enableAutoChannelIncrement%20%3D%20false%2C%0A%20%20%20%20.loopCount%20%3D%200UL%2C%0A%20%20%20%20.hardwareAverageMode%20%3D%20kLPADC_HardwareAverageCount1%2C%0A%20%20%20%20.sampleTimeMode%20%3D%20kLPADC_SampleTimeADCK3%2C%0A%20%20%20%20.hardwareCompareMode%20%3D%20kLPADC_HardwareCompareDisabled%2C%0A%20%20%20%20.hardwareCompareValueHigh%20%3D%200UL%2C%0A%20%20%20%20.hardwareCompareValueLow%20%3D%200UL%2C%0A%20%20%20%20.conversionResolutionMode%20%3D%20kLPADC_ConversionResolutionHigh%2C%0A%20%20%20%20.enableWaitTrigger%20%3D%20false%0A%20%20%7D%0A%7D%3B%0Alpadc_conv_trigger_config_t%20ADC0_triggersConfig%5B1%5D%20%3D%20%7B%0A%20%20%7B%0A%20%20%20%20.targetCommandId%20%3D%201%2C%0A%20%20%20%20.delayPower%20%3D%200UL%2C%0A%20%20%20%20.priority%20%3D%200%2C%0A%20%20%20%20.enableHardwareTrigger%20%3D%20true%0A%20%20%7D%2C%0A%7D%3B%0A%0Astatic%20void%20ADC0_init(void)%20%7B%0A%20%20%2F*%20Initialize%20LPADC%20converter%20*%2F%0A%20%20LPADC_Init(ADC0_PERIPHERAL%2C%20%26amp%3BADC0_config)%3B%0A%20%20%2F*%20Perform%20auto%20calibration%20*%2F%0A%20%20LPADC_DoAutoCalibration(ADC0_PERIPHERAL)%3B%0A%20%20%2F*%20Configure%20conversion%20command%201.%20*%2F%0A%20%20LPADC_SetConvCommandConfig(ADC0_PERIPHERAL%2C%20ADC0_ADC0_CMD1%2C%20%26amp%3BADC0_commandsConfig%5B0%5D)%3B%0A%20%20%2F*%20Configure%20conversion%20command%202.%20*%2F%0A%20%20LPADC_SetConvCommandConfig(ADC0_PERIPHERAL%2C%20ADC0_ADC0_CMD2%2C%20%26amp%3BADC0_commandsConfig%5B1%5D)%3B%0A%20%20%2F*%20Configure%20conversion%20command%203.%20*%2F%0A%20%20LPADC_SetConvCommandConfig(ADC0_PERIPHERAL%2C%20ADC0_ADC0_CMD3%2C%20%26amp%3BADC0_commandsConfig%5B2%5D)%3B%0A%20%20%2F*%20Configure%20trigger%200.%20*%2F%0A%20%20LPADC_SetConvTriggerConfig(ADC0_PERIPHERAL%2C%20ADC0_TRIGGER_0%2C%20%26amp%3BADC0_triggersConfig%5B0%5D)%3B%0A%20%20%0A%20%20LPADC_EnableInterrupts(ADC0_PERIPHERAL%2C%20(kLPADC_Trigger0CompletionInterruptEnable))%3B%0A%20%20%0A%20%20%2F*%20Interrupt%20vector%20ADC1_IRQn%20priority%20settings%20in%20the%20NVIC.%20*%2F%0A%20%20NVIC_SetPriority(ADC0_IRQn%2C%200)%3B%0A%20%20%2F*%20Enable%20interrupt%20ADC1_IRQN%20request%20in%20the%20NVIC%20*%2F%0A%20%20EnableIRQ(ADC0_IRQn)%3B%20%20%0A%7D%0A%0Aconst%20lpadc_config_t%20ADC1_config%20%3D%20%7B%0A%20%20.enableInDozeMode%20%3D%20false%2C%0A%20%20.conversionAverageMode%20%3D%20kLPADC_ConversionAverage256%2C%0A%20%20.enableAnalogPreliminary%20%3D%20true%2C%0A%20%20.powerUpDelay%20%3D%200x80UL%2C%0A%20%20.referenceVoltageSource%20%3D%20kLPADC_ReferenceVoltageAlt3%2C%0A%20%20.powerLevelMode%20%3D%20kLPADC_PowerLevelAlt4%2C%0A%20%20.triggerPriorityPolicy%20%3D%20kLPADC_TriggerPriorityExceptionDisabled%2C%0A%20%20.enableConvPause%20%3D%20false%2C%0A%20%20.convPauseDelay%20%3D%200UL%2C%0A%20%20.FIFOWatermark%20%3D%200UL%2C%0A%7D%3B%0Alpadc_conv_command_config_t%20ADC1_commandsConfig%5B3%5D%20%3D%20%7B%0A%20%20%7B%0A%20%20%20%20.sampleChannelMode%20%3D%20kLPADC_SampleChannelSingleEndSideA%2C%0A%20%20%20%20.channelNumber%20%3D%208U%2C%0A%20%20%20%20.chainedNextCommandNumber%20%3D%202%2C%0A%20%20%20%20.enableAutoChannelIncrement%20%3D%20false%2C%0A%20%20%20%20.loopCount%20%3D%200UL%2C%0A%20%20%20%20.hardwareAverageMode%20%3D%20kLPADC_HardwareAverageCount1%2C%0A%20%20%20%20.sampleTimeMode%20%3D%20kLPADC_SampleTimeADCK3%2C%0A%20%20%20%20.hardwareCompareMode%20%3D%20kLPADC_HardwareCompareDisabled%2C%0A%20%20%20%20.hardwareCompareValueHigh%20%3D%200UL%2C%0A%20%20%20%20.hardwareCompareValueLow%20%3D%200UL%2C%0A%20%20%20%20.conversionResolutionMode%20%3D%20kLPADC_ConversionResolutionHigh%2C%0A%20%20%20%20.enableWaitTrigger%20%3D%20true%0A%20%20%7D%2C%0A%20%20%7B%0A%20%20%20%20.sampleChannelMode%20%3D%20kLPADC_SampleChannelSingleEndSideA%2C%0A%20%20%20%20.channelNumber%20%3D%209U%2C%0A%20%20%20%20.chainedNextCommandNumber%20%3D%203%2C%0A%20%20%20%20.enableAutoChannelIncrement%20%3D%20false%2C%0A%20%20%20%20.loopCount%20%3D%200UL%2C%0A%20%20%20%20.hardwareAverageMode%20%3D%20kLPADC_HardwareAverageCount1%2C%0A%20%20%20%20.sampleTimeMode%20%3D%20kLPADC_SampleTimeADCK3%2C%0A%20%20%20%20.hardwareCompareMode%20%3D%20kLPADC_HardwareCompareDisabled%2C%0A%20%20%20%20.hardwareCompareValueHigh%20%3D%200UL%2C%0A%20%20%20%20.hardwareCompareValueLow%20%3D%200UL%2C%0A%20%20%20%20.conversionResolutionMode%20%3D%20kLPADC_ConversionResolutionHigh%2C%0A%20%20%20%20.enableWaitTrigger%20%3D%20true%0A%20%20%7D%2C%0A%20%20%7B%0A%20%20%20%20.sampleChannelMode%20%3D%20kLPADC_SampleChannelSingleEndSideA%2C%0A%20%20%20%20.channelNumber%20%3D%203U%2C%0A%20%20%20%20.chainedNextCommandNumber%20%3D%200%2C%0A%20%20%20%20.enableAutoChannelIncrement%20%3D%20false%2C%0A%20%20%20%20.loopCount%20%3D%200UL%2C%0A%20%20%20%20.hardwareAverageMode%20%3D%20kLPADC_HardwareAverageCount1%2C%0A%20%20%20%20.sampleTimeMode%20%3D%20kLPADC_SampleTimeADCK3%2C%0A%20%20%20%20.hardwareCompareMode%20%3D%20kLPADC_HardwareCompareDisabled%2C%0A%20%20%20%20.hardwareCompareValueHigh%20%3D%200UL%2C%0A%20%20%20%20.hardwareCompareValueLow%20%3D%200UL%2C%0A%20%20%20%20.conversionResolutionMode%20%3D%20kLPADC_ConversionResolutionHigh%2C%0A%20%20%20%20.enableWaitTrigger%20%3D%20false%0A%20%20%7D%0A%7D%3B%0Alpadc_conv_trigger_config_t%20ADC1_triggersConfig%5B1%5D%20%3D%20%7B%0A%20%20%7B%0A%20%20%20%20.targetCommandId%20%3D%201%2C%0A%20%20%20%20.delayPower%20%3D%200UL%2C%0A%20%20%20%20.priority%20%3D%200%2C%0A%20%20%20%20.enableHardwareTrigger%20%3D%20true%0A%20%20%7D%2C%0A%20%20%0A%7D%3B%0A%0Astatic%20void%20ADC1_init(void)%20%7B%0A%20%20%2F*%20Initialize%20LPADC%20converter%20*%2F%0A%20%20LPADC_Init(ADC1_PERIPHERAL%2C%20%26amp%3BADC1_config)%3B%0A%20%20%2F*%20Perform%20auto%20calibration%20*%2F%0A%20%20LPADC_DoAutoCalibration(ADC1_PERIPHERAL)%3B%0A%20%20%2F*%20Configure%20conversion%20command%201.%20*%2F%0A%20%20LPADC_SetConvCommandConfig(ADC1_PERIPHERAL%2C%20ADC1_ADC1_CMD1%2C%20%26amp%3BADC1_commandsConfig%5B0%5D)%3B%0A%20%20%2F*%20Configure%20conversion%20command%202.%20*%2F%0A%20%20LPADC_SetConvCommandConfig(ADC1_PERIPHERAL%2C%20ADC1_ADC1_CMD2%2C%20%26amp%3BADC1_commandsConfig%5B1%5D)%3B%0A%20%20%2F*%20Configure%20conversion%20command%203.%20*%2F%0A%20%20LPADC_SetConvCommandConfig(ADC1_PERIPHERAL%2C%20ADC1_ADC1_CMD3%2C%20%26amp%3BADC1_commandsConfig%5B2%5D)%3B%0A%20%20%2F*%20Configure%20trigger%200.%20*%2F%0A%20%20LPADC_SetConvTriggerConfig(ADC1_PERIPHERAL%2C%20ADC1_TRIGGER_0%2C%20%26amp%3BADC1_triggersConfig%5B0%5D)%3B%0A%20%20%0A%20%20NVIC_SetPriority(ADC1_IRQn%2C%200)%3B%0A%7D%3C%2FCODE%3E%3C%2FPRE%3E%3CBR%20%2F%3E%3CP%3E%3CSTRONG%3E2.%20pwm%E9%85%8D%E7%BD%AE%3C%2FSTRONG%3E%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-markup%22%3E%3CCODE%3Epwm_config_t%20FLEXPWM0_SM0_config%20%3D%20%7B%0A%20%20.clockSource%20%3D%20kPWM_BusClock%2C%0A%20%20.prescale%20%3D%20kPWM_Prescale_Divide_1%2C%0A%20%20.pairOperation%20%3D%20kPWM_ComplementaryPwmA%2C%0A%20%20.initializationControl%20%3D%20kPWM_Initialize_LocalSync%2C%0A%20%20.reloadLogic%20%3D%20kPWM_ReloadPwmFullCycle%2C%0A%20%20.reloadSelect%20%3D%20kPWM_LocalReload%2C%0A%20%20.reloadFrequency%20%3D%20kPWM_LoadEveryOportunity%2C%0A%20%20.forceTrigger%20%3D%20kPWM_Force_Local%2C%0A%20%20.enableDebugMode%20%3D%20true%2C%0A%7D%3B%0A%0Apwm_signal_param_t%20FLEXPWM0_SM0_pwm_function_config%5B2%5D%3D%20%7B%0A%20%20%7B%0A%20%20%20%20.pwmChannel%20%3D%20kPWM_PwmA%2C%0A%20%20%20%20.dutyCyclePercent%20%3D%2050U%2C%0A%20%20%20%20.level%20%3D%20kPWM_HighTrue%2C%0A%20%20%20%20.faultState%20%3D%20kPWM_PwmFaultState2%2C%0A%20%20%20%20.pwmchannelenable%20%3D%20true%2C%0A%20%20%20%20.deadtimeValue%20%3D%2058U%0A%20%20%7D%2C%0A%20%20%7B%0A%20%20%20%20.pwmChannel%20%3D%20kPWM_PwmB%2C%0A%20%20%20%20.dutyCyclePercent%20%3D%2050U%2C%0A%20%20%20%20.level%20%3D%20kPWM_HighTrue%2C%0A%20%20%20%20.faultState%20%3D%20kPWM_PwmFaultState2%2C%0A%20%20%20%20.pwmchannelenable%20%3D%20true%2C%0A%20%20%20%20.deadtimeValue%20%3D%2058U%0A%20%20%7D%2C%0A%7D%3B%0A%0Apwm_config_t%20FLEXPWM0_SM1_config%20%3D%20%7B%0A%20%20.clockSource%20%3D%20kPWM_Submodule0Clock%2C%0A%20%20.prescale%20%3D%20kPWM_Prescale_Divide_1%2C%0A%20%20.pairOperation%20%3D%20kPWM_ComplementaryPwmA%2C%0A%20%20.initializationControl%20%3D%20kPWM_Initialize_MasterSync%2C%2F%2F%2C%0A%20%20.reloadLogic%20%3D%20kPWM_ReloadPwmFullCycle%2C%0A%20%20.reloadSelect%20%3D%20kPWM_LocalReload%2C%2F%2FkPWM_MasterReload%2C%0A%20%20.reloadFrequency%20%3D%20kPWM_LoadEveryOportunity%2C%0A%20%20.forceTrigger%20%3D%20kPWM_Force_Local%2C%2F%2FkPWM_Force_Master%2C%0A%20%20.enableDebugMode%20%3D%20true%2C%0A%7D%3B%0A%0Apwm_signal_param_t%20FLEXPWM0_SM1_pwm_function_config%5B2%5D%3D%20%7B%0A%20%20%7B%0A%20%20%20%20.pwmChannel%20%3D%20kPWM_PwmA%2C%0A%20%20%20%20.dutyCyclePercent%20%3D%200U%2C%0A%20%20%20%20.level%20%3D%20kPWM_HighTrue%2C%0A%20%20%20%20.faultState%20%3D%20kPWM_PwmFaultState2%2C%0A%20%20%20%20.pwmchannelenable%20%3D%20true%2C%0A%20%20%20%20.deadtimeValue%20%3D%2058U%0A%20%20%7D%2C%0A%20%20%7B%0A%20%20%20%20.pwmChannel%20%3D%20kPWM_PwmB%2C%0A%20%20%20%20.dutyCyclePercent%20%3D%200U%2C%0A%20%20%20%20.level%20%3D%20kPWM_HighTrue%2C%0A%20%20%20%20.faultState%20%3D%20kPWM_PwmFaultState2%2C%0A%20%20%20%20.pwmchannelenable%20%3D%20true%2C%0A%20%20%20%20.deadtimeValue%20%3D%2058U%0A%20%20%7D%2C%0A%7D%3B%0A%0Apwm_config_t%20FLEXPWM0_SM2_config%20%3D%20%7B%0A%20%20.clockSource%20%3D%20kPWM_BusClock%2C%0A%20%20.prescale%20%3D%20kPWM_Prescale_Divide_1%2C%0A%20%20.pairOperation%20%3D%20kPWM_ComplementaryPwmA%2C%0A%20%20.initializationControl%20%3D%20kPWM_Initialize_MasterSync%2C%0A%20%20.reloadLogic%20%3D%20kPWM_ReloadPwmFullCycle%2C%0A%20%20.reloadSelect%20%3D%20kPWM_MasterReload%2C%0A%20%20.reloadFrequency%20%3D%20kPWM_LoadEveryOportunity%2C%0A%20%20.forceTrigger%20%3D%20kPWM_Force_Master%2C%0A%20%20.enableDebugMode%20%3D%20true%2C%0A%7D%3B%0A%0Apwm_signal_param_t%20FLEXPWM0_SM2_pwm_function_config%5B2%5D%3D%20%7B%0A%20%20%7B%0A%20%20%20%20.pwmChannel%20%3D%20kPWM_PwmA%2C%0A%20%20%20%20.dutyCyclePercent%20%3D%200U%2C%0A%20%20%20%20.level%20%3D%20kPWM_HighTrue%2C%0A%20%20%20%20.faultState%20%3D%20kPWM_PwmFaultState2%2C%0A%20%20%20%20.pwmchannelenable%20%3D%20true%2C%0A%20%20%20%20.deadtimeValue%20%3D%2058U%0A%20%20%7D%2C%0A%20%20%7B%0A%20%20%20%20.pwmChannel%20%3D%20kPWM_PwmB%2C%0A%20%20%20%20.dutyCyclePercent%20%3D%200U%2C%0A%20%20%20%20.level%20%3D%20kPWM_HighTrue%2C%0A%20%20%20%20.faultState%20%3D%20kPWM_PwmFaultState2%2C%0A%20%20%20%20.pwmchannelenable%20%3D%20true%2C%0A%20%20%20%20.deadtimeValue%20%3D%2058U%0A%20%20%7D%2C%0A%7D%3B%0A%0Aconst%20pwm_fault_input_filter_param_t%20FLEXPWM0_faultInputFilter_config%20%3D%20%7B%0A%20%20.faultFilterPeriod%20%3D%202U%2C%0A%20%20.faultFilterCount%20%3D%204U%2C%0A%20%20.faultGlitchStretch%20%3D%20true%0A%7D%3B%0Aconst%20pwm_fault_param_t%20FLEXPWM0_Fault0_fault_config%20%3D%20%7B%0A%20%20.faultClearingMode%20%3D%20kPWM_ManualSafety%2C%0A%20%20.faultLevel%20%3D%20true%2C%0A%20%20.enableCombinationalPath%20%3D%20true%2C%0A%20%20.recoverMode%20%3D%20kPWM_RecoverFullCycle%2C%0A%7D%3B%0Aconst%20pwm_fault_param_t%20FLEXPWM0_Fault1_fault_config%20%3D%20%7B%0A%20%20.faultClearingMode%20%3D%20kPWM_Automatic%2C%0A%20%20.faultLevel%20%3D%20true%2C%0A%20%20.enableCombinationalPath%20%3D%20true%2C%0A%20%20.recoverMode%20%3D%20kPWM_NoRecovery%0A%7D%3B%0Aconst%20pwm_fault_param_t%20FLEXPWM0_Fault2_fault_config%20%3D%20%7B%0A%20%20.faultClearingMode%20%3D%20kPWM_Automatic%2C%0A%20%20.faultLevel%20%3D%20true%2C%0A%20%20.enableCombinationalPath%20%3D%20true%2C%0A%20%20.recoverMode%20%3D%20kPWM_NoRecovery%0A%7D%3B%0Aconst%20pwm_fault_param_t%20FLEXPWM0_Fault3_fault_config%20%3D%20%7B%0A%20%20.faultClearingMode%20%3D%20kPWM_Automatic%2C%0A%20%20.faultLevel%20%3D%20true%2C%0A%20%20.enableCombinationalPath%20%3D%20true%2C%0A%20%20.recoverMode%20%3D%20kPWM_NoRecovery%0A%7D%3B%0A%0Astatic%20void%20FLEXPWM0_init(void)%20%7B%0A%20%20%2F*%20Initialize%20PWM%20submodule%20SM0%20main%20configuration%20*%2F%0A%20%20PWM_Init(FLEXPWM0_PERIPHERAL%2C%20FLEXPWM0_SM0%2C%20%26amp%3BFLEXPWM0_SM0_config)%3B%0A%20%20%2F*%20Initialize%20PWM%20submodule%20SM1%20main%20configuration%20*%2F%0A%20%20PWM_Init(FLEXPWM0_PERIPHERAL%2C%20FLEXPWM0_SM1%2C%20%26amp%3BFLEXPWM0_SM1_config)%3B%0A%20%20%2F*%20Initialize%20PWM%20submodule%20SM2%20main%20configuration%20*%2F%0A%20%20PWM_Init(FLEXPWM0_PERIPHERAL%2C%20FLEXPWM0_SM2%2C%20%26amp%3BFLEXPWM0_SM2_config)%3B%0A%20%20%2F*%20Initialize%20PWM%20submodule%20SM1%20phase%20delay%20*%2F%0A%20%20PWM_SetPhaseDelay(FLEXPWM0_PERIPHERAL%2C%20FLEXPWM0_UNUSED_CHANNEL_PARAM%2C%20FLEXPWM0_SM1%2C%20FLEXPWM0_SM1_DELAY_CYCLES)%3B%0A%20%20%2F*%20Initialize%20PWM%20submodule%20SM2%20phase%20delay%20*%2F%0A%20%20PWM_SetPhaseDelay(FLEXPWM0_PERIPHERAL%2C%20FLEXPWM0_UNUSED_CHANNEL_PARAM%2C%20FLEXPWM0_SM2%2C%20FLEXPWM0_SM2_DELAY_CYCLES)%3B%0A%20%20%2F*%20Initialize%20fault%20input%20filter%20configuration%20*%2F%0A%20%20PWM_SetupFaultInputFilter(FLEXPWM0_PERIPHERAL%2C%20%26amp%3BFLEXPWM0_faultInputFilter_config)%3B%0A%20%20%2F*%20Initialize%20fault%20channel%200%20fault%20Fault0%20configuration%20*%2F%0A%20%20PWM_SetupFaults(FLEXPWM0_PERIPHERAL%2C%20FLEXPWM0_F0_FAULT0%2C%20%26amp%3BFLEXPWM0_Fault0_fault_config)%3B%0A%20%20%2F*%20Initialize%20fault%20channel%200%20fault%20Fault1%20configuration%20*%2F%0A%20%20PWM_SetupFaults(FLEXPWM0_PERIPHERAL%2C%20FLEXPWM0_F0_FAULT1%2C%20%26amp%3BFLEXPWM0_Fault1_fault_config)%3B%0A%20%20%2F*%20Initialize%20fault%20channel%200%20fault%20Fault2%20configuration%20*%2F%0A%20%20PWM_SetupFaults(FLEXPWM0_PERIPHERAL%2C%20FLEXPWM0_F0_FAULT2%2C%20%26amp%3BFLEXPWM0_Fault2_fault_config)%3B%0A%20%20%2F*%20Initialize%20fault%20channel%200%20fault%20Fault3%20configuration%20*%2F%0A%20%20PWM_SetupFaults(FLEXPWM0_PERIPHERAL%2C%20FLEXPWM0_F0_FAULT3%2C%20%26amp%3BFLEXPWM0_Fault3_fault_config)%3B%0A%20%20%2F*%20Initialize%20deadtime%20logic%20input%20for%20the%20channel%20A%20*%2F%0A%20%20PWM_SetupForceSignal(FLEXPWM0_PERIPHERAL%2C%20FLEXPWM0_SM0%2C%20FLEXPWM0_SM0_A%2C%20kPWM_UsePwm)%3B%0A%20%20%2F*%20Initialize%20deadtime%20logic%20input%20for%20the%20channel%20B%20*%2F%0A%20%20PWM_SetupForceSignal(FLEXPWM0_PERIPHERAL%2C%20FLEXPWM0_SM0%2C%20FLEXPWM0_SM0_B%2C%20kPWM_UsePwm)%3B%0A%20%20%2F*%20Initialize%20deadtime%20logic%20input%20for%20the%20channel%20A%20*%2F%0A%20%20PWM_SetupForceSignal(FLEXPWM0_PERIPHERAL%2C%20FLEXPWM0_SM1%2C%20FLEXPWM0_SM1_A%2C%20kPWM_UsePwm)%3B%0A%20%20%2F*%20Initialize%20deadtime%20logic%20input%20for%20the%20channel%20B%20*%2F%0A%20%20PWM_SetupForceSignal(FLEXPWM0_PERIPHERAL%2C%20FLEXPWM0_SM1%2C%20FLEXPWM0_SM1_B%2C%20kPWM_UsePwm)%3B%0A%20%20%2F*%20Initialize%20deadtime%20logic%20input%20for%20the%20channel%20A%20*%2F%0A%20%20PWM_SetupForceSignal(FLEXPWM0_PERIPHERAL%2C%20FLEXPWM0_SM2%2C%20FLEXPWM0_SM2_A%2C%20kPWM_UsePwm)%3B%0A%20%20%2F*%20Initialize%20deadtime%20logic%20input%20for%20the%20channel%20B%20*%2F%0A%20%20PWM_SetupForceSignal(FLEXPWM0_PERIPHERAL%2C%20FLEXPWM0_SM2%2C%20FLEXPWM0_SM2_B%2C%20kPWM_UsePwm)%3B%0A%20%20%2F*%20Setup%20PWM%20output%20setting%20for%20submodule%20SM0%20*%2F%0A%20%20PWM_SetupPwm(FLEXPWM0_PERIPHERAL%2C%20FLEXPWM0_SM0%2C%20FLEXPWM0_SM0_pwm_function_config%2C%202U%2C%20kPWM_CenterAligned%2C%20FLEXPWM0_SM0_COUNTER_FREQ_HZ%2C%20FLEXPWM0_SM0_SM_CLK_SOURCE_FREQ_HZ)%3B%0A%20%20%2F*%20Setup%20PWM%20output%20setting%20for%20submodule%20SM1%20*%2F%0A%20%20PWM_SetupPwm(FLEXPWM0_PERIPHERAL%2C%20FLEXPWM0_SM1%2C%20FLEXPWM0_SM1_pwm_function_config%2C%202U%2C%20kPWM_CenterAligned%2C%20FLEXPWM0_SM1_COUNTER_FREQ_HZ%2C%20FLEXPWM0_SM1_SM_CLK_SOURCE_FREQ_HZ)%3B%0A%20%20%2F*%20Setup%20PWM%20output%20setting%20for%20submodule%20SM2%20*%2F%0A%20%20PWM_SetupPwm(FLEXPWM0_PERIPHERAL%2C%20FLEXPWM0_SM2%2C%20FLEXPWM0_SM2_pwm_function_config%2C%202U%2C%20kPWM_CenterAligned%2C%20FLEXPWM0_SM2_COUNTER_FREQ_HZ%2C%20FLEXPWM0_SM2_SM_CLK_SOURCE_FREQ_HZ)%3B%0A%20%20%0A%20%20%20%20%2F*%20Initialize%20output%20trigger%20for%20VAL4%20compare%20of%20submodule%20SM0%20*%2F%0A%20%20PWM_OutputTriggerEnable(FLEXPWM0_PERIPHERAL%2C%20FLEXPWM0_SM0%2C%20kPWM_ValueRegister_1%2C%20true)%3B%0A%20%20%0A%20%20%2F*%20Enable%20interrupts%20from%20main%20config%20of%20the%20submodule%20SM0%20*%2F%0A%20%20PWM_EnableInterrupts(FLEXPWM0_PERIPHERAL%2C%20FLEXPWM0_SM0%2C%20(kPWM_ReloadInterruptEnable%20%7C%20kPWM_ReloadErrorInterruptEnable))%3B%0A%20%20%2F*%20Initialize%20LDOK%20for%20update%20of%20the%20working%20registers%20*%2F%0A%20%20PWM_SetPwmLdok(FLEXPWM0_PERIPHERAL%2C%20(kPWM_Control_Module_0%20%7C%20kPWM_Control_Module_1%20%7C%20kPWM_Control_Module_2)%2C%20true)%3B%0A%20%20%2F*%20Start%20selected%20counters%20*%2F%0A%20%20PWM_StartTimer(FLEXPWM0_PERIPHERAL%2C%20(kPWM_Control_Module_0%20%7C%20kPWM_Control_Module_1%20%7C%20kPWM_Control_Module_2))%3B%0A%7D%3C%2FCODE%3E%3C%2FPRE%3E%3CBR%20%2F%3E%3CP%3E%3CSTRONG%3E3.%20inputmux%E9%85%8D%E7%BD%AE%3C%2FSTRONG%3E%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-markup%22%3E%3CCODE%3E%20%20%20%20INPUTMUX_Init(INPUTMUX0)%3B%0A%20%20%20%20INPUTMUX_AttachSignal(INPUTMUX0%2C%200U%2C%20kINPUTMUX_Pwm0Sm0OutTrig0ToAdc0Trigger)%3B%0A%20%20%20%20INPUTMUX_AttachSignal(INPUTMUX0%2C%200U%2C%20kINPUTMUX_Pwm0Sm0OutTrig0ToAdc1Trigger)%3B%3C%2FCODE%3E%3C%2FPRE%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-2346874%22%20slang%3D%22zh-CN%22%20mode%3D%22CREATE%22%3E%3CLINGO-LABEL%3EAnalog(ADC%7CCMP%7CDAC%7COpAmps)%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2349184%22%20slang%3D%22zh-CN%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20mcxa154%20pwm%E6%BA%A2%E5%87%BA%E4%B8%AD%E6%96%AD%E8%A7%A6%E5%8F%91adc%E9%87%87%E9%9B%86%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2349184%22%20slang%3D%22zh-CN%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F82805%22%20target%3D%22_blank%22%3E%401668834026%3C%2FA%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%E5%85%B3%E4%BA%8E%E6%82%A8%E7%9A%84%3C%2FP%3E%0A%3CP%3E%3CSTRONG%3E3.%20inputmux%E9%85%8D%E7%BD%AE%3C%2FSTRONG%3E%3C%2FP%3E%0A%3CPRE%20class%3D%22lia-code-sample%20language-markup%22%3E%3CCODE%3E%20%20%20%20INPUTMUX_Init(INPUTMUX0)%3B%0A%20%20%20%20INPUTMUX_AttachSignal(INPUTMUX0%2C%200U%2C%20kINPUTMUX_Pwm0Sm0OutTrig0ToAdc0Trigger)%3B%0A%20%20%20%20INPUTMUX_AttachSignal(INPUTMUX0%2C%200U%2C%20kINPUTMUX_Pwm0Sm0OutTrig0ToAdc1Trigger)%3B%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%E8%AF%B7%E9%97%AE%E6%82%A8%E6%98%AF%E5%90%A6%E4%BD%BF%E8%83%BD%E4%BA%86inputmux%E7%9A%84%E6%97%B6%E9%92%9F%3C%2FP%3E%0A%3CPRE%20class%3D%22lia-code-sample%20language-markup%22%3E%3CCODE%3E%20%20%20%20%2F*%20Enable%20INPUTMUX0%20*%2F%0A%20%20%20%20CLOCK_EnableClock(kCLOCK_InputMux0)%3B%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3EBR%3C%2FP%3E%0A%3CP%3EHarry%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2349190%22%20slang%3D%22zh-CN%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20mcxa154%20pwm%E6%BA%A2%E5%87%BA%E4%B8%AD%E6%96%AD%E8%A7%A6%E5%8F%91adc%E9%87%87%E9%9B%86%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2349190%22%20slang%3D%22zh-CN%22%20mode%3D%22CREATE%22%3E%3CP%3E%E5%97%AF%EF%BC%8C%E6%88%91%E5%AF%B9%E4%BA%86%E4%B8%80%E4%B8%8B%E3%80%82INPUTMUX_Init%E4%B8%AD%E6%98%AF%E6%9C%89%E4%BD%BF%E8%83%BD%E6%97%B6%E9%92%9F%E7%9A%84%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-markup%22%3E%3CCODE%3Evoid%20INPUTMUX_Init(void%20*base)%0A%7B%0A%23if%20!(defined(FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL)%20%26amp%3B%26amp%3B%20FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL)%0A%23if%20defined(FSL_FEATURE_INPUTMUX_HAS_NO_INPUTMUX_CLOCK_SOURCE)%20%26amp%3B%26amp%3B%20FSL_FEATURE_INPUTMUX_HAS_NO_INPUTMUX_CLOCK_SOURCE%0A%23if%20(defined(FSL_FEATURE_SOC_SCT_COUNT)%20%26amp%3B%26amp%3B%20(FSL_FEATURE_SOC_SCT_COUNT%20%26gt%3B%200))%0A%20%20%20%20CLOCK_EnableClock(kCLOCK_Sct)%3B%0A%23endif%20%2F*%20FSL_FEATURE_SOC_SCT_COUNT%20*%2F%0A%20%20%20%20CLOCK_EnableClock(kCLOCK_Dma)%3B%0A%23else%0A%20%20%20%20CLOCK_EnableClock(s_inputmuxClockName%5BINPUTMUX_GetInstance(base)%5D)%3B%0A%23endif%20%2F*%20FSL_FEATURE_INPUTMUX_HAS_NO_INPUTMUX_CLOCK_SOURCE%20*%2F%0A%23endif%20%2F*%20FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL%20*%2F%0A%0A%23if%20defined(INPUTMUX_RESETS_ARRAY)%0A%20%20%20%20RESET_ReleasePeripheralReset(s_inputmuxResets%5BINPUTMUX_GetInstance(base)%5D)%3B%0A%23endif%0A%7D%3C%2FCODE%3E%3C%2FPRE%3E%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E