Problems Setting Prescaler for PWM capture

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

Problems Setting Prescaler for PWM capture

2,568 次查看
mexp2
Contributor I

We are using a PWM input to capture a external frequency of a tacho.

With the standard settings everything works fine but when i apply a prescaler during initialization

pwmConfig.prescale = kPWM_Prescale_Divide_64;

or by setting it via

void PWM_SetClockMode

the values of CVAL2 and CVAL3 are always 0x00 and the counter is not counting

My signal has a frequency of 200Hz 

0 项奖励
回复
5 回复数

2,500 次查看
mexp2
Contributor I

We use the imxRT1062 with the SDK v 2.13.0

/* Read the PWM default configuration */
PWM_GetDefaultConfig(&pwmConfig);

pwmConfig.reloadLogic 	  = kPWM_ReloadImmediate;
pwmConfig.pairOperation   = kPWM_Independent;
pwmConfig.enableDebugMode = true;

/* Init the pwm */
if( PWM_Init(TACHOPUMP_PERIPHERAL, TACHOPUMP_CHANNEL, &pwmConfig) == kStatus_Fail)
{
	PRINTF("Can't initialize PWM\n");
return;
}

/* Configure the capture input of the PWM for one shot polling */
pwm_input_capture_param_t captureConfig;

captureConfig.captureInputSel = false;
captureConfig.edge0 = kPWM_RisingEdge;
captureConfig.edge1 = kPWM_RisingEdge;
captureConfig.enableOneShotCapture = true;

PWM_SetupInputCapture(TACHOPUMP_PERIPHERAL, TACHOPUMP_CHANNEL, TACHOPUMP_SIGNAL, &captureConfig);

PWM_SetPwmLdok(TACHOPUMP_PERIPHERAL, timerBitmask, true);

PWM_StartTimer(TACHOPUMP_PERIPHERAL, timerBitmask);

with this code everything works as expected, but if i add a prescaler in the configuration

pwmConfig.prescale = kPWM_Prescale_Divide_128;

the counter is not counting anymore

0 项奖励
回复

2,442 次查看
RaRo
NXP TechSupport
NXP TechSupport

Hello @mexp2,

First of all, we apologize for the delay to answer you.

Just for double check, could you please tell us where are you placing the kPWM_Prescale_Divide_128? It might be good if you could write the pwmConfig.prescale=kPWM_Prescale_Divide_128; after pwmConfig.pairOperation=kPWM_Independent; and before PWM_Init(). Also, which clock source are you using?

Finally, could you please try to use other values of the prescaler below 64?

Best regards, Raul.

0 项奖励
回复

1,250 次查看
coderick
Contributor II

你好,我也遇到了楼主同样的问题,将分频代码去掉或者设为1分频时,Counter可以正常运行,但是设置2分频或更高的分频时Counter就停止了,这是什么原因?

void Capture_config(void)
{
    pwm_input_capture_param_t pwm_input_capture;
    gpio_pin_config_t PWM_pin_config;
  
    //初始化输入捕获管脚
    IOMUXC_SetPinMux(PWM2_PWMA03_IOMUXC, 0U);                             //设置外部引脚的复用功能                              
    IOMUXC_SetPinConfig(PWM2_PWMA03_IOMUXC, PWMC_INPUT_PAD_CONFIG_DATA);     //设置引脚的 pad 属性 

    PWM_pin_config.direction = kGPIO_DigitalInput;
    PWM_pin_config.interruptMode = kGPIO_NoIntmode;

    GPIO_PinInit(PWM2_PWMA03_GPIO, PWM2_PWMA03_GPIO_PIN, &PWM_pin_config);

    //初始化输入捕获配置参数
    pwm_input_capture.captureInputSel = false;
    pwm_input_capture.edge0 = kPWM_RisingEdge;
    //pwm_input_capture.edge1 = kPWM_FallingEdge;
    pwm_input_capture.enableOneShotCapture = false;
    //pwm_input_capture.edgeCompareValue = 10;  //当captureInputSel为FALSE时,此处设值无意义
    pwm_input_capture.fifoWatermark = 0;
    PWM_SetupInputCapture(PI_PWM_BASEADDR, kPWM_Module_3, kPWM_PwmA, &pwm_input_capture);

    //开启捕获中断
    //set_IRQn_Priority(PWM2_3_IRQn,Group4_PreemptPriority_0, Group4_SubPriority_0);//设置中断优先级
    //PWM_EnableInterrupts(PI_PWM_BASEADDR, kPWM_Module_3, kPWM_CaptureA0InterruptEnable| kPWM_CaptureA1InterruptEnable );
    PWM_EnableInterrupts(PI_PWM_BASEADDR, kPWM_Module_3, kPWM_CaptureA0InterruptEnable );
    EnableIRQ(PWM2_3_IRQn);  
}

 /**
* @brief  初始化 PWM  配置参数 
* @retval 无
*/
void PWM_config(void)
{
    pwm_config_t pwmConfig;//定义pwm 配置结构体

    PWM_Deinit(PI_PWM_BASEADDR, kPWM_Module_3);
    /*设置AHB总线时钟和IP总线时钟*/
    CLOCK_SetDiv(kCLOCK_IpgDiv, 0x3); /* Set IPG PODF to 3, divede by 4 */

    /*设置pwm 错误输入为高电平,表示没有错误,只有当pwm 没有错误输入或者禁止错误检测才能正常输出pwm波*/
    XBARA_Init(XBARA1);
    XBARA_SetSignalsConnection(XBARA1, kXBARA1_InputLogicHigh, kXBARA1_OutputFlexpwm1Fault0);
    XBARA_SetSignalsConnection(XBARA1, kXBARA1_InputLogicHigh, kXBARA1_OutputFlexpwm1Fault1);
    XBARA_SetSignalsConnection(XBARA1, kXBARA1_InputLogicHigh, kXBARA1_OutputFlexpwm1234Fault2);
    XBARA_SetSignalsConnection(XBARA1, kXBARA1_InputLogicHigh, kXBARA1_OutputFlexpwm1234Fault3); 
    
    PWM_GetDefaultConfig(&pwmConfig);
    pwmConfig.reloadLogic = kPWM_ReloadPwmFullCycle; //新值在上一个pwm周期输出结束之后加载到缓冲寄存器中
    pwmConfig.pairOperation = kPWM_Independent;      // 工作在独立模式
    pwmConfig.clockSource = kPWM_BusClock;
    pwmConfig.enableDebugMode = true;                // 使能DebugMode 
    pwmConfig.prescale = kPWM_Prescale_Divide_128;    //1320000000/128/65535=16Hz=PWM最小频率

    //初始化 PWM 并且判断初始化是否成功
    if (PWM_Init(PI_PWM_BASEADDR, kPWM_Module_3, &pwmConfig) == kStatus_Fail)
    {
        PRINTF("PWM initialization failed\n");
    }
    Capture_config();
    PWM_SetPwmLdok(PI_PWM_BASEADDR,kPWM_Control_Module_3 , true);   
    PWM_StartTimer(PI_PWM_BASEADDR, kPWM_Control_Module_3 );
}
标记 (2)
0 项奖励
回复

2,540 次查看
Sanket_Parekh
NXP TechSupport
NXP TechSupport

Hi @mexp2 ,

I hope you are doing well.

Please specify which i.MX Processor is used to debug further.

Thanks & Regards,
Sanket Parekh

0 项奖励
回复

1,149 次查看
isharaby
Contributor I

Hello,

I've encountered the same issue,
when configuring the any of the four PWM peripherals clock perscaler with values other than kPWM_Prescale_Divide_1 , the counter of the selected PWM peripheral doesn't work at all.

I'm using the imxrt1062 processor and MCUXpresso IDE v11.9.1

I hope, you can support me as soon as possible.
And, here is a snippet of my code where I configure and initialize the pwm peripherals.

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);

}

 

0 项奖励
回复
%3CLINGO-SUB%20id%3D%22lingo-sub-1684880%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%E4%B8%BA%20PWM%20%E6%8D%95%E8%8E%B7%E8%AE%BE%E7%BD%AE%E9%A2%84%E5%88%86%E9%A2%91%E5%99%A8%E6%97%B6%E5%87%BA%E7%8E%B0%E9%97%AE%E9%A2%98%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1684880%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E6%88%91%E4%BB%AC%E6%AD%A3%E5%9C%A8%E4%BD%BF%E7%94%A8%20PWM%20%E8%BE%93%E5%85%A5%E6%9D%A5%E6%8D%95%E8%8E%B7%E8%BD%AC%E9%80%9F%E8%AE%A1%E7%9A%84%E5%A4%96%E9%83%A8%E9%A2%91%E7%8E%87%E3%80%82%3C%2FP%3E%3CP%3E%E5%9C%A8%E6%A0%87%E5%87%86%E8%AE%BE%E7%BD%AE%E4%B8%8B%E4%B8%80%E5%88%87%E6%AD%A3%E5%B8%B8%EF%BC%8C%E4%BD%86%E5%BD%93%E6%88%91%E5%9C%A8%E5%88%9D%E5%A7%8B%E5%8C%96%E8%BF%87%E7%A8%8B%E4%B8%AD%E5%BA%94%E7%94%A8%E9%A2%84%E5%88%86%E9%A2%91%E5%99%A8%E6%97%B6%3C%2FP%3E%3CP%3E%3CSPAN%3EpwmConfig.%3C%2FSPAN%3Eprescale%3CSPAN%3E%20%3D%20%3C%2FSPAN%3E%3CI%3EkPWM_Prescale_Divide_64%3C%2FI%3E%3CSPAN%3E%EF%BC%9B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%E6%88%96%E9%80%9A%E8%BF%87%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%3CSTRONG%3Evoid%3C%2FSTRONG%3E%3C%2FSPAN%3E%20%3CSTRONG%3EPWM_SetClockMode%3C%2FSTRONG%3E%3C%2FP%3E%3CP%3ECVAL2%20%E5%92%8C%20CVAL3%20%E7%9A%84%E5%80%BC%E5%A7%8B%E7%BB%88%E4%B8%BA%200x00%EF%BC%8C%E8%AE%A1%E6%95%B0%E5%99%A8%E4%B8%8D%E8%AE%A1%E6%95%B0%3C%2FP%3E%3CP%3E%E6%88%91%E7%9A%84%E4%BF%A1%E5%8F%B7%E9%A2%91%E7%8E%87%E4%B8%BA%20200Hz%20%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2205534%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Problems%20Setting%20Prescaler%20for%20PWM%20capture%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2205534%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CDIV%3E%3CDIV%3E%3CP%3E%E6%82%A8%E5%A5%BD%EF%BC%8C%3CBR%20%2F%3E%3CBR%20%2F%3E%EF%BC%8C%E6%88%91%E4%B9%9F%E9%81%87%E5%88%B0%E4%BA%86%E5%90%8C%E6%A0%B7%E7%9A%84%E9%97%AE%E9%A2%98%EF%BC%8C%3CBR%20%2F%3E%EF%BC%8C%E5%BD%93%E9%85%8D%E7%BD%AE%E5%9B%9B%E4%B8%AA%20PWM%20%E5%A4%96%E5%9B%B4%E8%AE%BE%E5%A4%87%E4%B8%AD%E7%9A%84%E4%BB%BB%E4%BD%95%E4%B8%80%E4%B8%AA%E6%97%B6%E9%92%9F%E9%80%8F%E5%88%86%E9%A2%91%E5%99%A8%E6%97%B6%3CSPAN%3E%EF%BC%8C%E5%A6%82%E6%9E%9C%E4%BD%BF%E7%94%A8%E7%9A%84%E5%80%BC%E4%B8%8D%E6%98%AF%20kPWM_Prescale_Divide_1%EF%BC%8C%E5%88%99%E6%89%80%E9%80%89%20PWM%20%E5%A4%96%E5%9B%B4%E8%AE%BE%E5%A4%87%E7%9A%84%E8%AE%A1%E6%95%B0%E5%99%A8%E6%A0%B9%E6%9C%AC%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8%E3%80%82%3CBR%20%2F%3E%3CBR%20%2F%3E%E6%88%91%E4%BD%BF%E7%94%A8%E7%9A%84%E6%98%AF%20imxrt1062%20%E5%A4%84%E7%90%86%E5%99%A8%E5%92%8C%20MCUXpresso%20IDE%20v11.9.1%3CBR%20%2F%3E%3CBR%20%2F%3E%EF%BC%8C%E5%B8%8C%E6%9C%9B%E4%BD%A0%E4%BB%AC%E8%83%BD%E5%B0%BD%E5%BF%AB%E6%94%AF%E6%8C%81%E6%88%91%E3%80%82%3CBR%20%2F%3E%E4%B8%8B%E9%9D%A2%E6%98%AF%E6%88%91%E9%85%8D%E7%BD%AE%E5%92%8C%E5%88%9D%E5%A7%8B%E5%8C%96%20PWM%20%E5%A4%96%E5%9B%B4%E8%AE%BE%E5%A4%87%E7%9A%84%E4%BB%A3%E7%A0%81%E7%89%87%E6%AE%B5%E3%80%82%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%3CDIV%3E%3CDIV%3E%3CP%3E%3CSPAN%3E%E9%9D%99%E6%80%81%3C%2FSPAN%3E%20%3CSPAN%3Evoid%3C%2FSPAN%3E%20%3CSPAN%3Epwm_init%3C%2FSPAN%3E%3CSPAN%3E(%3C%2FSPAN%3E%3CSPAN%3Evoid%3C%2FSPAN%3E%3CSPAN%3E)%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%7B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3Epwm_config_t%3C%2FSPAN%3E%3CSPAN%3EpwmConfig%EF%BC%9B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3Epwm_input_capture_param_t%3C%2FSPAN%3E%3CSPAN%3EcaptureConfig%EF%BC%9B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3Epwm_fault_param_t%3C%2FSPAN%3E%3CSPAN%3EfaultConfig%EF%BC%9B%3C%2FSPAN%3E%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%3CSPAN%3E%2F*%20%E8%AF%BB%E5%8F%96%20PWM%20%E9%BB%98%E8%AE%A4%E9%85%8D%E7%BD%AE%20*%2F%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPWM_GetDefaultConfig(%26amp%3BpwmConfig)%EF%BC%9B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EpwmConfig.%3C%2FSPAN%3E%3CSPAN%3E%E6%97%B6%E9%92%9F%E6%BA%90%3C%2FSPAN%3E%3CSPAN%3E%3D%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_BusClock%3C%2FSPAN%3E%3CSPAN%3E%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EpwmConfig.%3C%2FSPAN%3E%3CSPAN%3E%E9%A2%84%E6%A0%87%E5%BA%A6%3C%2FSPAN%3E%3CSPAN%3E%3D%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_Prescale_Divide_2%3C%2FSPAN%3E%3CSPAN%3E%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EpwmConfig.%3C%2FSPAN%3E%3CSPAN%3E%E9%85%8D%E5%AF%B9%E6%93%8D%E4%BD%9C%3C%2FSPAN%3E%3CSPAN%3E%3D%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_Independent%3C%2FSPAN%3E%3CSPAN%3E%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EpwmConfig.%3C%2FSPAN%3E%3CSPAN%3E%E5%88%9D%E5%A7%8B%E5%8C%96%E6%8E%A7%E5%88%B6%3C%2FSPAN%3E%3CSPAN%3E%3D%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_Initialize_LocalSync%3C%2FSPAN%3E%3CSPAN%3E%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EpwmConfig.%3C%2FSPAN%3E%3CSPAN%3E%E9%87%8D%E8%BD%BD%E9%80%BB%E8%BE%91%3C%2FSPAN%3E%3CSPAN%3E%3D%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_ReloadImmediate%3C%2FSPAN%3E%3CSPAN%3E%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EpwmConfig.%3C%2FSPAN%3E%3CSPAN%3E%E9%87%8D%E6%96%B0%E5%8A%A0%E8%BD%BD%E9%80%89%E6%8B%A9%3C%2FSPAN%3E%3CSPAN%3E%3D%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_LocalReload%3C%2FSPAN%3E%3CSPAN%3E%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EpwmConfig.%3C%2FSPAN%3E%3CSPAN%3E%E9%87%8D%E8%BD%BD%E9%A2%91%E7%8E%87%3C%2FSPAN%3E%3CSPAN%3E%3D%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_LoadEveryOportunity%3C%2FSPAN%3E%3CSPAN%3E%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EpwmConfig.%3C%2FSPAN%3E%3CSPAN%3E%E5%BC%BA%E5%88%B6%E8%A7%A6%E5%8F%91%3C%2FSPAN%3E%3CSPAN%3E%3D%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_Force_LocalSync%3C%2FSPAN%3E%3CSPAN%3E%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EpwmConfig.%3C%2FSPAN%3E%3CSPAN%3E%E5%90%AF%E7%94%A8%E8%B0%83%E8%AF%95%E6%A8%A1%E5%BC%8F%3C%2FSPAN%3E%3CSPAN%3E%3D%20true%EF%BC%9B%3C%2FSPAN%3E%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%3CSPAN%3EPWM_Init(PWM1_BASEADDR%E3%80%81%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_Module_3%3C%2FSPAN%3E%3CSPAN%3E%2C%26amp%3BpwmConfig%EF%BC%89%EF%BC%9B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPWM_Init(PWM2_BASEADDR%E3%80%81%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_Module_3%3C%2FSPAN%3E%3CSPAN%3E%2C%26amp%3BpwmConfig%EF%BC%89%EF%BC%9B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPWM_Init(PWM3_BASEADDR%E3%80%81%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_Module_1%3C%2FSPAN%3E%3CSPAN%3E%2C%26amp%3BpwmConfig%EF%BC%89%EF%BC%9B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPWM_Init(PWM4_BASEADDR%E3%80%81%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_Module_1%3C%2FSPAN%3E%3CSPAN%3E%2C%26amp%3BpwmConfig%EF%BC%89%EF%BC%9B%3C%2FSPAN%3E%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%3CSPAN%3E%2F%2F%20%E6%95%85%E9%9A%9C%E9%85%8D%E7%BD%AE%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPWM_FaultDefaultConfig(%26amp%3BfaultConfig)%EF%BC%9B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%2F*%20%E5%AE%89%E8%A3%85%20PWM%20%E6%95%85%E9%9A%9C%E4%BF%9D%E6%8A%A4%20*%2F%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPWM_SetupFaults(PWM1_BASEADDR%E3%80%81%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_Fault_0%3C%2FSPAN%3E%3CSPAN%3E%26amp%3BfaultConfig%EF%BC%89%EF%BC%9B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPWM_SetupFaults(PWM1_BASEADDR%E3%80%81%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_Fault_1%3C%2FSPAN%3E%3CSPAN%3E%26amp%3BfaultConfig%EF%BC%89%EF%BC%9B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPWM_SetupFaults(PWM1_BASEADDR%E3%80%81%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_Fault_2%3C%2FSPAN%3E%3CSPAN%3E%26amp%3BfaultConfig%EF%BC%89%EF%BC%9B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPWM_SetupFaults(PWM1_BASEADDR%E3%80%81%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_Fault_3%3C%2FSPAN%3E%3CSPAN%3E%26amp%3BfaultConfig%EF%BC%89%EF%BC%9B%3C%2FSPAN%3E%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%3CSPAN%3E%2F*%20%E4%B8%BA%E5%AD%90%E6%A8%A1%E5%9D%97%200%2F1%2F2%20%E8%AE%BE%E7%BD%AE%20PWM%20%E6%95%85%E9%9A%9C%E7%A6%81%E7%94%A8%E6%98%A0%E5%B0%84%20*%2F%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPWM_SetupFaultDisableMap(PWM1_BASEADDR%E3%80%81%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_Module_0%3C%2FSPAN%3E%3CSPAN%3E%2C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_PwmA%3C%2FSPAN%3E%3CSPAN%3E%2C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_faultchannel_0%3C%2FSPAN%3E%3CSPAN%3E%2C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_0%3C%2FSPAN%3E%3CSPAN%3E%7C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_1%3C%2FSPAN%3E%3CSPAN%3E%7C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_2%3C%2FSPAN%3E%3CSPAN%3E%7C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_3%3C%2FSPAN%3E%3CSPAN%3E)%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPWM_SetupFaultDisableMap(PWM1_BASEADDR%E3%80%81%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_Module_1%3C%2FSPAN%3E%3CSPAN%3E%2C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_PwmA%3C%2FSPAN%3E%3CSPAN%3E%2C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_faultchannel_0%3C%2FSPAN%3E%3CSPAN%3E%2C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_0%3C%2FSPAN%3E%3CSPAN%3E%7C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_1%3C%2FSPAN%3E%3CSPAN%3E%7C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_2%3C%2FSPAN%3E%3CSPAN%3E%7C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_3%3C%2FSPAN%3E%3CSPAN%3E)%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPWM_SetupFaultDisableMap(PWM1_BASEADDR%E3%80%81%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_Module_2%3C%2FSPAN%3E%3CSPAN%3E%2C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_PwmA%3C%2FSPAN%3E%3CSPAN%3E%2C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_faultchannel_0%3C%2FSPAN%3E%3CSPAN%3E%2C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_0%3C%2FSPAN%3E%3CSPAN%3E%7C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_1%3C%2FSPAN%3E%3CSPAN%3E%7C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_2%3C%2FSPAN%3E%3CSPAN%3E%7C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_3%3C%2FSPAN%3E%3CSPAN%3E)%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPWM_SetupFaultDisableMap(PWM1_BASEADDR%E3%80%81%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_Module_3%3C%2FSPAN%3E%3CSPAN%3E%2C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_PwmA%3C%2FSPAN%3E%3CSPAN%3E%2C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_faultchannel_0%3C%2FSPAN%3E%3CSPAN%3E%2C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_0%3C%2FSPAN%3E%3CSPAN%3E%7C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_1%3C%2FSPAN%3E%3CSPAN%3E%7C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_2%3C%2FSPAN%3E%3CSPAN%3E%7C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_3%3C%2FSPAN%3E%3CSPAN%3E)%3B%3C%2FSPAN%3E%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%3CSPAN%3E%2F*%20%E5%AE%89%E8%A3%85%20PWM%20%E6%95%85%E9%9A%9C%E4%BF%9D%E6%8A%A4%20*%2F%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPWM_SetupFaults(PWM2_BASEADDR%E3%80%81%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_Fault_0%3C%2FSPAN%3E%3CSPAN%3E%26amp%3BfaultConfig%EF%BC%89%EF%BC%9B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPWM_SetupFaults(PWM2_BASEADDR%E3%80%81%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_Fault_1%3C%2FSPAN%3E%3CSPAN%3E%26amp%3BfaultConfig%EF%BC%89%EF%BC%9B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPWM_SetupFaults(PWM2_BASEADDR%E3%80%81%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_Fault_2%3C%2FSPAN%3E%3CSPAN%3E%26amp%3BfaultConfig%EF%BC%89%EF%BC%9B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPWM_SetupFaults(PWM2_BASEADDR%E3%80%81%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_Fault_3%3C%2FSPAN%3E%3CSPAN%3E%26amp%3BfaultConfig%EF%BC%89%EF%BC%9B%3C%2FSPAN%3E%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%3CSPAN%3E%2F*%20%E4%B8%BA%E5%AD%90%E6%A8%A1%E5%9D%97%200%2F1%2F2%20%E8%AE%BE%E7%BD%AE%20PWM%20%E6%95%85%E9%9A%9C%E7%A6%81%E7%94%A8%E6%98%A0%E5%B0%84%20*%2F%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPWM_SetupFaultDisableMap(PWM2_BASEADDR%E3%80%81%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_Module_0%3C%2FSPAN%3E%3CSPAN%3E%2C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_PwmA%3C%2FSPAN%3E%3CSPAN%3E%2C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_faultchannel_0%3C%2FSPAN%3E%3CSPAN%3E%2C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_0%3C%2FSPAN%3E%3CSPAN%3E%7C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_1%3C%2FSPAN%3E%3CSPAN%3E%7C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_2%3C%2FSPAN%3E%3CSPAN%3E%7C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_3%3C%2FSPAN%3E%3CSPAN%3E)%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPWM_SetupFaultDisableMap(PWM2_BASEADDR%E3%80%81%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_Module_1%3C%2FSPAN%3E%3CSPAN%3E%2C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_PwmA%3C%2FSPAN%3E%3CSPAN%3E%2C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_faultchannel_0%3C%2FSPAN%3E%3CSPAN%3E%2C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_0%3C%2FSPAN%3E%3CSPAN%3E%7C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_1%3C%2FSPAN%3E%3CSPAN%3E%7C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_2%3C%2FSPAN%3E%3CSPAN%3E%7C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_3%3C%2FSPAN%3E%3CSPAN%3E)%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPWM_SetupFaultDisableMap(PWM2_BASEADDR%E3%80%81%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_Module_2%3C%2FSPAN%3E%3CSPAN%3E%2C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_PwmA%3C%2FSPAN%3E%3CSPAN%3E%2C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_faultchannel_0%3C%2FSPAN%3E%3CSPAN%3E%2C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_0%3C%2FSPAN%3E%3CSPAN%3E%7C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_1%3C%2FSPAN%3E%3CSPAN%3E%7C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_2%3C%2FSPAN%3E%3CSPAN%3E%7C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_3%3C%2FSPAN%3E%3CSPAN%3E)%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPWM_SetupFaultDisableMap(PWM2_BASEADDR%E3%80%81%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_Module_3%3C%2FSPAN%3E%3CSPAN%3E%2C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_PwmA%3C%2FSPAN%3E%3CSPAN%3E%2C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_faultchannel_0%3C%2FSPAN%3E%3CSPAN%3E%2C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_0%3C%2FSPAN%3E%3CSPAN%3E%7C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_1%3C%2FSPAN%3E%3CSPAN%3E%7C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_2%3C%2FSPAN%3E%3CSPAN%3E%7C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_3%3C%2FSPAN%3E%3CSPAN%3E)%3B%3C%2FSPAN%3E%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%3CSPAN%3E%2F*%20%E5%AE%89%E8%A3%85%20PWM%20%E6%95%85%E9%9A%9C%E4%BF%9D%E6%8A%A4%20*%2F%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPWM_SetupFaults(PWM3_BASEADDR%E3%80%81%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_Fault_0%3C%2FSPAN%3E%3CSPAN%3E%26amp%3BfaultConfig%EF%BC%89%EF%BC%9B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPWM_SetupFaults(PWM3_BASEADDR%E3%80%81%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_Fault_1%3C%2FSPAN%3E%3CSPAN%3E%26amp%3BfaultConfig%EF%BC%89%EF%BC%9B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPWM_SetupFaults(PWM3_BASEADDR%E3%80%81%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_Fault_2%3C%2FSPAN%3E%3CSPAN%3E%26amp%3BfaultConfig%EF%BC%89%EF%BC%9B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPWM_SetupFaults(PWM3_BASEADDR%E3%80%81%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_Fault_3%3C%2FSPAN%3E%3CSPAN%3E%26amp%3BfaultConfig%EF%BC%89%EF%BC%9B%3C%2FSPAN%3E%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%3CSPAN%3E%2F*%20%E4%B8%BA%E5%AD%90%E6%A8%A1%E5%9D%97%200%2F1%2F2%20%E8%AE%BE%E7%BD%AE%20PWM%20%E6%95%85%E9%9A%9C%E7%A6%81%E7%94%A8%E6%98%A0%E5%B0%84%20*%2F%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPWM_SetupFaultDisableMap(PWM3_BASEADDR%E3%80%81%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_Module_0%3C%2FSPAN%3E%3CSPAN%3E%2C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_PwmA%3C%2FSPAN%3E%3CSPAN%3E%2C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_faultchannel_0%3C%2FSPAN%3E%3CSPAN%3E%2C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_0%3C%2FSPAN%3E%3CSPAN%3E%7C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_1%3C%2FSPAN%3E%3CSPAN%3E%7C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_2%3C%2FSPAN%3E%3CSPAN%3E%7C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_3%3C%2FSPAN%3E%3CSPAN%3E)%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPWM_SetupFaultDisableMap(PWM3_BASEADDR%E3%80%81%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_Module_1%3C%2FSPAN%3E%3CSPAN%3E%2C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_PwmA%3C%2FSPAN%3E%3CSPAN%3E%2C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_faultchannel_0%3C%2FSPAN%3E%3CSPAN%3E%2C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_0%3C%2FSPAN%3E%3CSPAN%3E%7C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_1%3C%2FSPAN%3E%3CSPAN%3E%7C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_2%3C%2FSPAN%3E%3CSPAN%3E%7C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_3%3C%2FSPAN%3E%3CSPAN%3E)%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPWM_SetupFaultDisableMap(PWM3_BASEADDR%E3%80%81%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_Module_2%3C%2FSPAN%3E%3CSPAN%3E%2C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_PwmA%3C%2FSPAN%3E%3CSPAN%3E%2C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_faultchannel_0%3C%2FSPAN%3E%3CSPAN%3E%2C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_0%3C%2FSPAN%3E%3CSPAN%3E%7C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_1%3C%2FSPAN%3E%3CSPAN%3E%7C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_2%3C%2FSPAN%3E%3CSPAN%3E%7C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_3%3C%2FSPAN%3E%3CSPAN%3E)%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPWM_SetupFaultDisableMap(PWM3_BASEADDR%E3%80%81%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_Module_3%3C%2FSPAN%3E%3CSPAN%3E%2C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_PwmA%3C%2FSPAN%3E%3CSPAN%3E%2C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_faultchannel_0%3C%2FSPAN%3E%3CSPAN%3E%2C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_0%3C%2FSPAN%3E%3CSPAN%3E%7C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_1%3C%2FSPAN%3E%3CSPAN%3E%7C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_2%3C%2FSPAN%3E%3CSPAN%3E%7C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_3%3C%2FSPAN%3E%3CSPAN%3E)%3B%3C%2FSPAN%3E%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%3CSPAN%3E%2F*%20%E5%AE%89%E8%A3%85%20PWM%20%E6%95%85%E9%9A%9C%E4%BF%9D%E6%8A%A4%20*%2F%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPWM_SetupFaults(PWM4_BASEADDR%E3%80%81%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_Fault_0%3C%2FSPAN%3E%3CSPAN%3E%26amp%3BfaultConfig%EF%BC%89%EF%BC%9B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPWM_SetupFaults(PWM4_BASEADDR%E3%80%81%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_Fault_1%3C%2FSPAN%3E%3CSPAN%3E%26amp%3BfaultConfig%EF%BC%89%EF%BC%9B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPWM_SetupFaults(PWM4_BASEADDR%E3%80%81%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_Fault_2%3C%2FSPAN%3E%3CSPAN%3E%26amp%3BfaultConfig%EF%BC%89%EF%BC%9B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPWM_SetupFaults(PWM4_BASEADDR%E3%80%81%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_Fault_3%3C%2FSPAN%3E%3CSPAN%3E%26amp%3BfaultConfig%EF%BC%89%EF%BC%9B%3C%2FSPAN%3E%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%3CSPAN%3E%2F*%20%E4%B8%BA%E5%AD%90%E6%A8%A1%E5%9D%97%200%2F1%2F2%20%E8%AE%BE%E7%BD%AE%20PWM%20%E6%95%85%E9%9A%9C%E7%A6%81%E7%94%A8%E6%98%A0%E5%B0%84%20*%2F%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPWM_SetupFaultDisableMap(PWM4_BASEADDR%E3%80%81%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_Module_0%3C%2FSPAN%3E%3CSPAN%3E%2C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_PwmA%3C%2FSPAN%3E%3CSPAN%3E%2C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_faultchannel_0%3C%2FSPAN%3E%3CSPAN%3E%2C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_0%3C%2FSPAN%3E%3CSPAN%3E%7C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_1%3C%2FSPAN%3E%3CSPAN%3E%7C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_2%3C%2FSPAN%3E%3CSPAN%3E%7C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_3%3C%2FSPAN%3E%3CSPAN%3E)%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPWM_SetupFaultDisableMap(PWM4_BASEADDR%E3%80%81%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_Module_1%3C%2FSPAN%3E%3CSPAN%3E%2C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_PwmA%3C%2FSPAN%3E%3CSPAN%3E%2C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_faultchannel_0%3C%2FSPAN%3E%3CSPAN%3E%2C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_0%3C%2FSPAN%3E%3CSPAN%3E%7C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_1%3C%2FSPAN%3E%3CSPAN%3E%7C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_2%3C%2FSPAN%3E%3CSPAN%3E%7C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_3%3C%2FSPAN%3E%3CSPAN%3E)%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPWM_SetupFaultDisableMap(PWM4_BASEADDR%E3%80%81%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_Module_2%3C%2FSPAN%3E%3CSPAN%3E%2C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_PwmA%3C%2FSPAN%3E%3CSPAN%3E%2C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_faultchannel_0%3C%2FSPAN%3E%3CSPAN%3E%2C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_0%3C%2FSPAN%3E%3CSPAN%3E%7C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_1%3C%2FSPAN%3E%3CSPAN%3E%7C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_2%3C%2FSPAN%3E%3CSPAN%3E%7C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_3%3C%2FSPAN%3E%3CSPAN%3E)%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPWM_SetupFaultDisableMap(PWM4_BASEADDR%E3%80%81%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_Module_3%3C%2FSPAN%3E%3CSPAN%3E%2C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_PwmA%3C%2FSPAN%3E%3CSPAN%3E%2C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_faultchannel_0%3C%2FSPAN%3E%3CSPAN%3E%2C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_0%3C%2FSPAN%3E%3CSPAN%3E%7C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_1%3C%2FSPAN%3E%3CSPAN%3E%7C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_2%3C%2FSPAN%3E%3CSPAN%3E%7C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_FaultDisable_3%3C%2FSPAN%3E%3CSPAN%3E)%3B%3C%2FSPAN%3E%3C%2FP%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CP%3E%3CSPAN%3E%2F*%20%E4%B8%BA%E5%8D%95%E6%AC%A1%E8%BD%AE%E8%AF%A2%E9%85%8D%E7%BD%AE%20PWM%20%E7%9A%84%E6%8D%95%E8%8E%B7%E8%BE%93%E5%85%A5%20*%2F%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EcaptureConfig.%3C%2FSPAN%3E%3CSPAN%3EcaptureInputSel%3C%2FSPAN%3E%3CSPAN%3E%3D%20true%EF%BC%9B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%E6%8D%95%E6%8D%89%E9%85%8D%E7%BD%AE%E3%80%82%3C%2FSPAN%3E%3CSPAN%3E%E8%BE%B9%E7%BC%980%3C%2FSPAN%3E%3CSPAN%3E%3D%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_RiseAndFallEdge%3C%2FSPAN%3E%3CSPAN%3E%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%E6%8D%95%E6%8D%89%E9%85%8D%E7%BD%AE%E3%80%82%3C%2FSPAN%3E%3CSPAN%3E%E8%BE%B9%E7%BC%981%3C%2FSPAN%3E%3CSPAN%3E%3D%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_Disable%3C%2FSPAN%3E%3CSPAN%3E%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EcaptureConfig.%3C%2FSPAN%3E%3CSPAN%3EenableOneShotCapture%3C%2FSPAN%3E%3CSPAN%3E%3D%20false%EF%BC%9B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EcaptureConfig.%3C%2FSPAN%3E%3CSPAN%3EedgeCompareValue%3C%2FSPAN%3E%3CSPAN%3E%3D%201%3B%3C%2FSPAN%3E%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%3CSPAN%3EPWM_SetupInputCapture(PWM1_BASEADDR%E3%80%81%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_Module_3%3C%2FSPAN%3E%3CSPAN%3E%2C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_PwmA%3C%2FSPAN%3E%3CSPAN%3E%26amp%3BcaptureConfig%EF%BC%89%EF%BC%9B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPWM_SetupInputCapture(PWM2_BASEADDR%E3%80%81%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_Module_3%3C%2FSPAN%3E%3CSPAN%3E%2C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_PwmA%3C%2FSPAN%3E%3CSPAN%3E%26amp%3BcaptureConfig%EF%BC%89%EF%BC%9B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPWM_SetupInputCapture(PWM3_BASEADDR%E3%80%81%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_Module_1%3C%2FSPAN%3E%3CSPAN%3E%2C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_PwmA%3C%2FSPAN%3E%3CSPAN%3E%26amp%3BcaptureConfig%EF%BC%89%EF%BC%9B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPWM_SetupInputCapture(PWM4_BASEADDR%E3%80%81%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_Module_1%3C%2FSPAN%3E%3CSPAN%3E%2C%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_PwmA%3C%2FSPAN%3E%3CSPAN%3E%26amp%3BcaptureConfig%EF%BC%89%EF%BC%9B%3C%2FSPAN%3E%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%3CSPAN%3EPWM_SetPwmLdok(PWM1_BASEADDR%E3%80%81%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_Control_Module_3%3C%2FSPAN%3E%3CSPAN%3E%EF%BC%8Ctrue%EF%BC%89%EF%BC%9B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPWM_SetPwmLdok(PWM2_BASEADDR%E3%80%81%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_Control_Module_3%3C%2FSPAN%3E%3CSPAN%3E%EF%BC%8Ctrue%EF%BC%89%EF%BC%9B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPWM_SetPwmLdok(PWM3_BASEADDR%E3%80%81%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_Control_Module_1%3C%2FSPAN%3E%3CSPAN%3E%EF%BC%8Ctrue%EF%BC%89%EF%BC%9B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPWM_SetPwmLdok(PWM4_BASEADDR%E3%80%81%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_Control_Module_1%3C%2FSPAN%3E%3CSPAN%3E%EF%BC%8Ctrue%EF%BC%89%EF%BC%9B%3C%2FSPAN%3E%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%3CSPAN%3EPWM_StartTimer(PWM1_BASEADDR%E3%80%81%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_Control_Module_3%3C%2FSPAN%3E%3CSPAN%3E)%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPWM_StartTimer(PWM2_BASEADDR%E3%80%81%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_Control_Module_3%3C%2FSPAN%3E%3CSPAN%3E)%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPWM_StartTimer(PWM3_BASEADDR%E3%80%81%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_Control_Module_1%3C%2FSPAN%3E%3CSPAN%3E)%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPWM_StartTimer(PWM4_BASEADDR%E3%80%81%20%3C%2FSPAN%3E%3CSPAN%3EkPWM_Control_Module_1%3C%2FSPAN%3E%3CSPAN%3E)%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%7D%3C%2FSPAN%3E%3C%2FP%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3CP%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2195377%22%20slang%3D%22zh-CN%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3EProblems%20Setting%20the%20Prescaler%20for%20PWM%20capture%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2195377%22%20slang%3D%22zh-CN%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%EF%BC%8C%E6%88%91%E4%B9%9F%E9%81%87%E5%88%B0%E4%BA%86%E6%A5%BC%E4%B8%BB%E5%90%8C%E6%A0%B7%E7%9A%84%E9%97%AE%E9%A2%98%EF%BC%8C%E5%B0%86%E5%88%86%E9%A2%91%E4%BB%A3%E7%A0%81%E5%8E%BB%E6%8E%89%E6%88%96%E8%80%85%E8%AE%BE%E4%B8%BA1%E5%88%86%E9%A2%91%E6%97%B6%EF%BC%8CCounter%E5%8F%AF%E4%BB%A5%E6%AD%A3%E5%B8%B8%E8%BF%90%E8%A1%8C%EF%BC%8C%E4%BD%86%E6%98%AF%E8%AE%BE%E7%BD%AE2%E5%88%86%E9%A2%91%E6%88%96%E6%9B%B4%E9%AB%98%E7%9A%84%E5%88%86%E9%A2%91%E6%97%B6Counter%E5%B0%B1%E5%81%9C%E6%AD%A2%E4%BA%86%EF%BC%8C%E8%BF%99%E6%98%AF%E4%BB%80%E4%B9%88%E5%8E%9F%E5%9B%A0%EF%BC%9F%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-c%22%3E%3CCODE%3Evoid%20Capture_config(void)%0A%7B%0A%20%20%20%20pwm_input_capture_param_t%20pwm_input_capture%3B%0A%20%20%20%20gpio_pin_config_t%20PWM_pin_config%3B%0A%20%20%0A%20%20%20%20%2F%2F%E5%88%9D%E5%A7%8B%E5%8C%96%E8%BE%93%E5%85%A5%E6%8D%95%E8%8E%B7%E7%AE%A1%E8%84%9A%0A%20%20%20%20IOMUXC_SetPinMux(PWM2_PWMA03_IOMUXC%2C%200U)%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%E8%AE%BE%E7%BD%AE%E5%A4%96%E9%83%A8%E5%BC%95%E8%84%9A%E7%9A%84%E5%A4%8D%E7%94%A8%E5%8A%9F%E8%83%BD%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20IOMUXC_SetPinConfig(PWM2_PWMA03_IOMUXC%2C%20PWMC_INPUT_PAD_CONFIG_DATA)%3B%20%20%20%20%20%2F%2F%E8%AE%BE%E7%BD%AE%E5%BC%95%E8%84%9A%E7%9A%84%20pad%20%E5%B1%9E%E6%80%A7%20%0A%0A%20%20%20%20PWM_pin_config.direction%20%3D%20kGPIO_DigitalInput%3B%0A%20%20%20%20PWM_pin_config.interruptMode%20%3D%20kGPIO_NoIntmode%3B%0A%0A%20%20%20%20GPIO_PinInit(PWM2_PWMA03_GPIO%2C%20PWM2_PWMA03_GPIO_PIN%2C%20%26amp%3BPWM_pin_config)%3B%0A%0A%20%20%20%20%2F%2F%E5%88%9D%E5%A7%8B%E5%8C%96%E8%BE%93%E5%85%A5%E6%8D%95%E8%8E%B7%E9%85%8D%E7%BD%AE%E5%8F%82%E6%95%B0%0A%20%20%20%20pwm_input_capture.captureInputSel%20%3D%20false%3B%0A%20%20%20%20pwm_input_capture.edge0%20%3D%20kPWM_RisingEdge%3B%0A%20%20%20%20%2F%2Fpwm_input_capture.edge1%20%3D%20kPWM_FallingEdge%3B%0A%20%20%20%20pwm_input_capture.enableOneShotCapture%20%3D%20false%3B%0A%20%20%20%20%2F%2Fpwm_input_capture.edgeCompareValue%20%3D%2010%3B%20%20%2F%2F%E5%BD%93captureInputSel%E4%B8%BAFALSE%E6%97%B6%EF%BC%8C%E6%AD%A4%E5%A4%84%E8%AE%BE%E5%80%BC%E6%97%A0%E6%84%8F%E4%B9%89%0A%20%20%20%20pwm_input_capture.fifoWatermark%20%3D%200%3B%0A%20%20%20%20PWM_SetupInputCapture(PI_PWM_BASEADDR%2C%20kPWM_Module_3%2C%20kPWM_PwmA%2C%20%26amp%3Bpwm_input_capture)%3B%0A%0A%20%20%20%20%2F%2F%E5%BC%80%E5%90%AF%E6%8D%95%E8%8E%B7%E4%B8%AD%E6%96%AD%0A%20%20%20%20%2F%2Fset_IRQn_Priority(PWM2_3_IRQn%2CGroup4_PreemptPriority_0%2C%20Group4_SubPriority_0)%3B%2F%2F%E8%AE%BE%E7%BD%AE%E4%B8%AD%E6%96%AD%E4%BC%98%E5%85%88%E7%BA%A7%0A%20%20%20%20%2F%2FPWM_EnableInterrupts(PI_PWM_BASEADDR%2C%20kPWM_Module_3%2C%20kPWM_CaptureA0InterruptEnable%7C%20kPWM_CaptureA1InterruptEnable%20)%3B%0A%20%20%20%20PWM_EnableInterrupts(PI_PWM_BASEADDR%2C%20kPWM_Module_3%2C%20kPWM_CaptureA0InterruptEnable%20)%3B%0A%20%20%20%20EnableIRQ(PWM2_3_IRQn)%3B%20%20%0A%7D%0A%0A%20%2F**%0A*%20%40brief%20%20%E5%88%9D%E5%A7%8B%E5%8C%96%20PWM%20%20%E9%85%8D%E7%BD%AE%E5%8F%82%E6%95%B0%20%0A*%20%40retval%20%E6%97%A0%0A*%2F%0Avoid%20PWM_config(void)%0A%7B%0A%20%20%20%20pwm_config_t%20pwmConfig%3B%2F%2F%E5%AE%9A%E4%B9%89pwm%20%E9%85%8D%E7%BD%AE%E7%BB%93%E6%9E%84%E4%BD%93%0A%0A%20%20%20%20PWM_Deinit(PI_PWM_BASEADDR%2C%20kPWM_Module_3)%3B%0A%20%20%20%20%2F*%E8%AE%BE%E7%BD%AEAHB%E6%80%BB%E7%BA%BF%E6%97%B6%E9%92%9F%E5%92%8CIP%E6%80%BB%E7%BA%BF%E6%97%B6%E9%92%9F*%2F%0A%20%20%20%20CLOCK_SetDiv(kCLOCK_IpgDiv%2C%200x3)%3B%20%2F*%20Set%20IPG%20PODF%20to%203%2C%20divede%20by%204%20*%2F%0A%0A%20%20%20%20%2F*%E8%AE%BE%E7%BD%AEpwm%20%E9%94%99%E8%AF%AF%E8%BE%93%E5%85%A5%E4%B8%BA%E9%AB%98%E7%94%B5%E5%B9%B3%EF%BC%8C%E8%A1%A8%E7%A4%BA%E6%B2%A1%E6%9C%89%E9%94%99%E8%AF%AF%EF%BC%8C%E5%8F%AA%E6%9C%89%E5%BD%93pwm%20%E6%B2%A1%E6%9C%89%E9%94%99%E8%AF%AF%E8%BE%93%E5%85%A5%E6%88%96%E8%80%85%E7%A6%81%E6%AD%A2%E9%94%99%E8%AF%AF%E6%A3%80%E6%B5%8B%E6%89%8D%E8%83%BD%E6%AD%A3%E5%B8%B8%E8%BE%93%E5%87%BApwm%E6%B3%A2*%2F%0A%20%20%20%20XBARA_Init(XBARA1)%3B%0A%20%20%20%20XBARA_SetSignalsConnection(XBARA1%2C%20kXBARA1_InputLogicHigh%2C%20kXBARA1_OutputFlexpwm1Fault0)%3B%0A%20%20%20%20XBARA_SetSignalsConnection(XBARA1%2C%20kXBARA1_InputLogicHigh%2C%20kXBARA1_OutputFlexpwm1Fault1)%3B%0A%20%20%20%20XBARA_SetSignalsConnection(XBARA1%2C%20kXBARA1_InputLogicHigh%2C%20kXBARA1_OutputFlexpwm1234Fault2)%3B%0A%20%20%20%20XBARA_SetSignalsConnection(XBARA1%2C%20kXBARA1_InputLogicHigh%2C%20kXBARA1_OutputFlexpwm1234Fault3)%3B%20%0A%20%20%20%20%0A%20%20%20%20PWM_GetDefaultConfig(%26amp%3BpwmConfig)%3B%0A%20%20%20%20pwmConfig.reloadLogic%20%3D%20kPWM_ReloadPwmFullCycle%3B%20%2F%2F%E6%96%B0%E5%80%BC%E5%9C%A8%E4%B8%8A%E4%B8%80%E4%B8%AApwm%E5%91%A8%E6%9C%9F%E8%BE%93%E5%87%BA%E7%BB%93%E6%9D%9F%E4%B9%8B%E5%90%8E%E5%8A%A0%E8%BD%BD%E5%88%B0%E7%BC%93%E5%86%B2%E5%AF%84%E5%AD%98%E5%99%A8%E4%B8%AD%0A%20%20%20%20pwmConfig.pairOperation%20%3D%20kPWM_Independent%3B%20%20%20%20%20%20%2F%2F%20%E5%B7%A5%E4%BD%9C%E5%9C%A8%E7%8B%AC%E7%AB%8B%E6%A8%A1%E5%BC%8F%0A%20%20%20%20pwmConfig.clockSource%20%3D%20kPWM_BusClock%3B%0A%20%20%20%20pwmConfig.enableDebugMode%20%3D%20true%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20%E4%BD%BF%E8%83%BDDebugMode%20%0A%20%20%20%20pwmConfig.prescale%20%3D%20kPWM_Prescale_Divide_128%3B%20%20%20%20%2F%2F1320000000%2F128%2F65535%3D16Hz%3DPWM%E6%9C%80%E5%B0%8F%E9%A2%91%E7%8E%87%0A%0A%20%20%20%20%2F%2F%E5%88%9D%E5%A7%8B%E5%8C%96%20PWM%20%E5%B9%B6%E4%B8%94%E5%88%A4%E6%96%AD%E5%88%9D%E5%A7%8B%E5%8C%96%E6%98%AF%E5%90%A6%E6%88%90%E5%8A%9F%0A%20%20%20%20if%20(PWM_Init(PI_PWM_BASEADDR%2C%20kPWM_Module_3%2C%20%26amp%3BpwmConfig)%20%3D%3D%20kStatus_Fail)%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20PRINTF(%22PWM%20initialization%20failed%5Cn%22)%3B%0A%20%20%20%20%7D%0A%20%20%20%20Capture_config()%3B%0A%20%20%20%20PWM_SetPwmLdok(PI_PWM_BASEADDR%2CkPWM_Control_Module_3%20%2C%20true)%3B%20%20%20%0A%20%20%20%20PWM_StartTimer(PI_PWM_BASEADDR%2C%20kPWM_Control_Module_3%20)%3B%0A%7D%3C%2FCODE%3E%3C%2FPRE%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1691605%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Problems%20Setting%20Prescaler%20for%20PWM%20capture%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1691605%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%20class%3D%22lia-align-justify%22%20style%3D%22text-align%20%3A%20justify%3B%22%20style%3D%22text-align%20%3A%20justify%3B%22%3E%E4%BD%A0%E5%A5%BD%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F220142%22%20target%3D%22_blank%22%3E%40mexp2%3C%2FA%3E%E3%80%81%3C%2FP%3E%0A%3CP%20class%3D%22lia-align-justify%22%20style%3D%22text-align%20%3A%20justify%3B%22%20style%3D%22text-align%20%3A%20justify%3B%22%3E%E9%A6%96%E5%85%88%EF%BC%8C%E6%88%91%E4%BB%AC%E5%AF%B9%E5%BB%B6%E8%BF%9F%E7%AD%94%E5%A4%8D%E6%82%A8%E8%A1%A8%E7%A4%BA%E6%AD%89%E6%84%8F%E3%80%82%3C%2FP%3E%0A%3CP%20class%3D%22lia-align-justify%22%20style%3D%22text-align%20%3A%20justify%3B%22%20style%3D%22text-align%20%3A%20justify%3B%22%3E%E4%B8%BA%E4%BA%86%E4%BB%94%E7%BB%86%E6%A3%80%E6%9F%A5%EF%BC%8C%E8%83%BD%E5%90%A6%E8%AF%B7%E6%82%A8%E5%91%8A%E8%AF%89%E6%88%91%E4%BB%AC%3CEM%3EkPWM_Prescale_Divide_128%3C%2FEM%3E%20%E7%9A%84%E4%BD%8D%E7%BD%AE%EF%BC%9F%E5%A6%82%E6%9E%9C%E8%83%BD%E5%86%99%E5%85%A5%3CEM%3EpwmConfig.prescale%3DkPWM_Prescale_Divide_128%3C%2FEM%3E%E5%8F%AF%E8%83%BD%E4%BC%9A%E6%9B%B4%E5%A5%BD%EF%BC%9B%3CEM%3EpwmConfig.pairOperation%3DkPWM_Independent%3C%2FEM%3E%E4%B9%8B%E5%90%8E%EF%BC%9B%E5%92%8C%3CEM%3EPWM_Init()%3C%2FEM%3E%E4%B9%8B%E5%89%8D%E3%80%82%E5%8F%A6%E5%A4%96%EF%BC%8C%E6%82%A8%E4%BD%BF%E7%94%A8%E7%9A%84%E6%98%AF%E5%93%AA%E4%B8%AA%E6%97%B6%E9%92%9F%E6%BA%90%EF%BC%9F%3C%2FP%3E%0A%3CP%20class%3D%22lia-align-justify%22%20style%3D%22text-align%20%3A%20justify%3B%22%20style%3D%22text-align%20%3A%20justify%3B%22%3E%E6%9C%80%E5%90%8E%EF%BC%8C%E8%83%BD%E5%90%A6%E5%B0%9D%E8%AF%95%E4%BD%BF%E7%94%A8%E4%BD%8E%E4%BA%8E%2064%20%E7%9A%84%E5%85%B6%E4%BB%96%E9%A2%84%E5%88%86%E9%A2%91%E5%99%A8%E5%80%BC%EF%BC%9F%3C%2FP%3E%0A%3CP%20class%3D%22lia-align-justify%22%20style%3D%22text-align%20%3A%20justify%3B%22%20style%3D%22text-align%20%3A%20justify%3B%22%3E%E8%87%B4%E4%BB%A5%E6%9C%80%E8%AF%9A%E6%8C%9A%E7%9A%84%E9%97%AE%E5%80%99%EF%BC%8C%E5%8A%B3%E5%B0%94%E3%80%82%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1688240%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Problems%20Setting%20Prescaler%20for%20PWM%20capture%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1688240%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E6%88%91%E4%BB%AC%E4%BD%BF%E7%94%A8%E7%9A%84%E6%98%AF%20imxRT1062%20%E5%92%8C%20SDK%202.13.0%20%E7%89%88%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-c%22%3E%3CCODE%20translate%3D%22no%22%3E%2F*%20Read%20the%20PWM%20default%20configuration%20*%2F%0APWM_GetDefaultConfig(%26amp%3BpwmConfig)%3B%0A%0ApwmConfig.reloadLogic%20%09%20%20%3D%20kPWM_ReloadImmediate%3B%0ApwmConfig.pairOperation%20%20%20%3D%20kPWM_Independent%3B%0ApwmConfig.enableDebugMode%20%3D%20true%3B%0A%0A%2F*%20Init%20the%20pwm%20*%2F%0Aif(%20PWM_Init(TACHOPUMP_PERIPHERAL%2C%20TACHOPUMP_CHANNEL%2C%20%26amp%3BpwmConfig)%20%3D%3D%20kStatus_Fail)%0A%7B%0A%09PRINTF(%22Can't%20initialize%20PWM%5Cn%22)%3B%0Areturn%3B%0A%7D%0A%0A%2F*%20Configure%20the%20capture%20input%20of%20the%20PWM%20for%20one%20shot%20polling%20*%2F%0Apwm_input_capture_param_t%20captureConfig%3B%0A%0AcaptureConfig.captureInputSel%20%3D%20false%3B%0AcaptureConfig.edge0%20%3D%20kPWM_RisingEdge%3B%0AcaptureConfig.edge1%20%3D%20kPWM_RisingEdge%3B%0AcaptureConfig.enableOneShotCapture%20%3D%20true%3B%0A%0APWM_SetupInputCapture(TACHOPUMP_PERIPHERAL%2C%20TACHOPUMP_CHANNEL%2C%20TACHOPUMP_SIGNAL%2C%20%26amp%3BcaptureConfig)%3B%0A%0APWM_SetPwmLdok(TACHOPUMP_PERIPHERAL%2C%20timerBitmask%2C%20true)%3B%0A%0APWM_StartTimer(TACHOPUMP_PERIPHERAL%2C%20timerBitmask)%3B%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3E%E4%BD%BF%E7%94%A8%E8%AF%A5%E4%BB%A3%E7%A0%81%E5%90%8E%EF%BC%8C%E4%B8%80%E5%88%87%E6%AD%A3%E5%B8%B8%EF%BC%8C%E4%BD%86%E5%A6%82%E6%9E%9C%E6%88%91%E5%9C%A8%E9%85%8D%E7%BD%AE%E4%B8%AD%E6%B7%BB%E5%8A%A0%E9%A2%84%E5%88%86%E9%A2%91%E5%99%A8%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-c%22%3E%3CCODE%20translate%3D%22no%22%3EpwmConfig.prescale%20%3D%20kPWM_Prescale_Divide_128%3B%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3E%E8%AE%A1%E6%95%B0%E5%99%A8%E4%B8%8D%E8%AE%A1%E6%95%B0%E4%BA%86%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1685604%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Problems%20Setting%20Prescaler%20for%20PWM%20capture%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1685604%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F220142%22%20target%3D%22_blank%22%3E%40mexp2%3C%2FA%3E%E3%80%81%3C%2FP%3E%0A%3CP%3E%E5%B8%8C%E6%9C%9B%E4%BD%A0%E4%B8%80%E5%88%87%E9%83%BD%E5%A5%BD%E3%80%82%3C%2FP%3E%0A%3CP%3E%E8%AF%B7%E8%AF%B4%E6%98%8E%E4%BD%BF%E7%94%A8%E5%93%AA%E4%B8%AA%20i.MX%20%E5%A4%84%E7%90%86%E5%99%A8%E8%BF%9B%E8%A1%8C%E8%BF%9B%E4%B8%80%E6%AD%A5%E8%B0%83%E8%AF%95%E3%80%82%3C%2FP%3E%0A%3CP%3E%E8%B0%A2%E8%B0%A2%26amp%3B%20%EF%BC%8C%3CBR%20%2F%3ESanket%20Parekh%3C%2FP%3E%3C%2FLINGO-BODY%3E