<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: MCXA156 PWM Capture Setup in MCX Microcontrollers</title>
    <link>https://community.nxp.com/t5/MCX-Microcontrollers/MCXA156-PWM-Capture-Setup/m-p/2207512#M4389</link>
    <description>&lt;P&gt;Hi &lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/27788"&gt;@Alice_Yang&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks for info.&lt;/P&gt;&lt;P&gt;I figured it out.&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;int main(void)
{
    BOARD_InitHardware();
    PRINTF("FlexPWM input capture only\r\n");

    pwm_config_t pwmConfig;
    PWM_GetDefaultConfig(&amp;amp;pwmConfig);
    //pwmConfig.prescale = kPWM_Prescale_Divide_1;
    pwmConfig.reloadLogic 	= kPWM_ReloadPwmFullCycle;
    pwmConfig.pairOperation = kPWM_Independent;
    pwmConfig.enableDebugMode = true;

    if( PWM_Init(BOARD_PWM_BASEADDR, kPWM_Module_0, &amp;amp;pwmConfig)== kStatus_Fail){
    	PRINTF("Can't initialize PWM\n");
    	return 0;
    }

    // Setup Input Capture
    pwm_input_capture_param_t captureParams = {0};
    captureParams.captureInputSel = 0;
    captureParams.edge0 = kPWM_RisingEdge;
    captureParams.edge1 = kPWM_FallingEdge;
    captureParams.enableOneShotCapture = false;
    //captureParams.fifoWatermark = 0;
    //captureParams.edgeCompareValue = 0;
    PWM_SetupInputCapture(BOARD_PWM_BASEADDR, kPWM_Module_0, kPWM_PwmX, &amp;amp;captureParams);

    //PWM_SetPwmLdok(BOARD_PWM_BASEADDR, kPWM_Control_Module_0, true);

    PWM_StartTimer(BOARD_PWM_BASEADDR, kPWM_Control_Module_0);

    while (1)
    {
        uint16_t rising = BOARD_PWM_BASEADDR-&amp;gt;SM[kPWM_Module_0].CVAL0;
        uint16_t falling = BOARD_PWM_BASEADDR-&amp;gt;SM[kPWM_Module_0].CVAL1;
        uint16_t high = falling &amp;gt; rising ? falling - rising : (falling + 0x10000) - rising;
        PRINTF("rising: %u  falling: %u  high: %u\r\n",rising, falling, high);
        SDK_DelayAtLeastUs(100000, SDK_DEVICE_MAXIMUM_CPU_CLOCK_FREQUENCY);
    }
}&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Wed, 19 Nov 2025 09:33:16 GMT</pubDate>
    <dc:creator>ZRay</dc:creator>
    <dc:date>2025-11-19T09:33:16Z</dc:date>
    <item>
      <title>MCXA156 PWM Capture Setup</title>
      <link>https://community.nxp.com/t5/MCX-Microcontrollers/MCXA156-PWM-Capture-Setup/m-p/2200423#M4323</link>
      <description>&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I would like to use the PWM Capture feature. &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;However, there doesn't seem to be a relevant example in the SDK there is only a sample for PWM output.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I noticed there is a Capture API in the Driver, but my attempts so far have not been successful. &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ZRay_1-1762480522655.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/364345iCCADCCB11887F5FF/image-size/medium?v=v2&amp;amp;px=400" role="button" title="ZRay_1-1762480522655.png" alt="ZRay_1-1762480522655.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I would like to ask if there are any other related samples that I can refer to.&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;My code is as follows:&lt;/P&gt;&lt;PRE&gt;int main(void)
{
    BOARD_InitHardware();
    PRINTF("FlexPWM input capture only\r\n");

    pwm_config_t pwmConfig;
    PWM_GetDefaultConfig(&amp;amp;pwmConfig);
    pwmConfig.pairOperation = kPWM_Independent;
    pwmConfig.enableDebugMode = true;

    PWM_Init(BOARD_PWM_BASEADDR, kPWM_Module_0, &amp;amp;pwmConfig);

    // Setup Input Capture
    pwm_input_capture_param_t captureParams = {0};
    captureParams.captureInputSel = 0;
    captureParams.edge0 = kPWM_RisingEdge;
    captureParams.edge1 = kPWM_FallingEdge;
    captureParams.enableOneShotCapture = false;
    captureParams.fifoWatermark = 0;
    captureParams.edgeCompareValue = 0;
    PWM_SetupInputCapture(BOARD_PWM_BASEADDR, kPWM_Module_0, kPWM_PwmX, &amp;amp;captureParams);


    PWM_StartTimer(BOARD_PWM_BASEADDR, kPWM_Control_Module_0);

    while (1)
    {
        uint16_t captured_cval0 = BOARD_PWM_BASEADDR-&amp;gt;SM[kPWM_Module_0].CVAL0;
        PRINTF("Capture Value 0 Register: %u\r\n", captured_cval0);
        uint16_t captured_cval1 = BOARD_PWM_BASEADDR-&amp;gt;SM[kPWM_Module_0].CVAL1;
        PRINTF("Capture Value 1 Register: %u\r\n", captured_cval1);
        
        SDK_DelayAtLeastUs(100000, SDK_DEVICE_MAXIMUM_CPU_CLOCK_FREQUENCY);
    }
}&lt;/PRE&gt;&lt;DIV class=""&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;P class=""&gt;Thank you.&lt;/P&gt;&lt;/DIV&gt;</description>
      <pubDate>Fri, 07 Nov 2025 02:09:08 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MCX-Microcontrollers/MCXA156-PWM-Capture-Setup/m-p/2200423#M4323</guid>
      <dc:creator>ZRay</dc:creator>
      <dc:date>2025-11-07T02:09:08Z</dc:date>
    </item>
    <item>
      <title>Re: MCXA156 PWM Capture Setup</title>
      <link>https://community.nxp.com/t5/MCX-Microcontrollers/MCXA156-PWM-Capture-Setup/m-p/2200571#M4324</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/214745"&gt;@ZRay&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks for your question!&lt;/P&gt;
&lt;P&gt;You can check out the capture demo provided in the SDK.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Alice_Yang_0-1762496318159.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/364384i7E35F83EB9E390A3/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Alice_Yang_0-1762496318159.png" alt="Alice_Yang_0-1762496318159.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;BR&lt;/P&gt;
&lt;P&gt;Alice&lt;/P&gt;</description>
      <pubDate>Fri, 07 Nov 2025 06:18:54 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MCX-Microcontrollers/MCXA156-PWM-Capture-Setup/m-p/2200571#M4324</guid>
      <dc:creator>Alice_Yang</dc:creator>
      <dc:date>2025-11-07T06:18:54Z</dc:date>
    </item>
    <item>
      <title>Re: MCXA156 PWM Capture Setup</title>
      <link>https://community.nxp.com/t5/MCX-Microcontrollers/MCXA156-PWM-Capture-Setup/m-p/2202416#M4343</link>
      <description>&lt;P&gt;Hi &lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/27788"&gt;@Alice_Yang&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;&lt;P class=""&gt;Thank you for reply.&lt;/P&gt;&lt;P class=""&gt;The CTimer Capture example is work, but since our CTimer is used for other purposes, we wanted to ask if there are any reference examples related to PWM Capture.&lt;/P&gt;&lt;P class=""&gt;Thank you.&lt;/P&gt;</description>
      <pubDate>Tue, 11 Nov 2025 06:21:52 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MCX-Microcontrollers/MCXA156-PWM-Capture-Setup/m-p/2202416#M4343</guid>
      <dc:creator>ZRay</dc:creator>
      <dc:date>2025-11-11T06:21:52Z</dc:date>
    </item>
    <item>
      <title>Re: MCXA156 PWM Capture Setup</title>
      <link>https://community.nxp.com/t5/MCX-Microcontrollers/MCXA156-PWM-Capture-Setup/m-p/2202630#M4344</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/214745"&gt;@ZRay&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thank you for your reply.&lt;/P&gt;
&lt;P&gt;Yes, there is no dedicated PWM capture demo based on the MCXA156. However, there is a PWM capture example implemented using the SCTIMER module. You may refer to its principle and implementation as a reference for developing PWM capture functionality on FlexPWM.&lt;/P&gt;
&lt;P&gt;&lt;A href="https://www.nxp.com/docs/en/application-note/AN11538.zip" target="_blank"&gt;https://www.nxp.com/docs/en/application-note/AN11538.zip&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;BR&lt;/P&gt;
&lt;P&gt;Alice&lt;/P&gt;</description>
      <pubDate>Tue, 11 Nov 2025 09:24:36 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MCX-Microcontrollers/MCXA156-PWM-Capture-Setup/m-p/2202630#M4344</guid>
      <dc:creator>Alice_Yang</dc:creator>
      <dc:date>2025-11-11T09:24:36Z</dc:date>
    </item>
    <item>
      <title>Re: MCXA156 PWM Capture Setup</title>
      <link>https://community.nxp.com/t5/MCX-Microcontrollers/MCXA156-PWM-Capture-Setup/m-p/2207512#M4389</link>
      <description>&lt;P&gt;Hi &lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/27788"&gt;@Alice_Yang&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks for info.&lt;/P&gt;&lt;P&gt;I figured it out.&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;int main(void)
{
    BOARD_InitHardware();
    PRINTF("FlexPWM input capture only\r\n");

    pwm_config_t pwmConfig;
    PWM_GetDefaultConfig(&amp;amp;pwmConfig);
    //pwmConfig.prescale = kPWM_Prescale_Divide_1;
    pwmConfig.reloadLogic 	= kPWM_ReloadPwmFullCycle;
    pwmConfig.pairOperation = kPWM_Independent;
    pwmConfig.enableDebugMode = true;

    if( PWM_Init(BOARD_PWM_BASEADDR, kPWM_Module_0, &amp;amp;pwmConfig)== kStatus_Fail){
    	PRINTF("Can't initialize PWM\n");
    	return 0;
    }

    // Setup Input Capture
    pwm_input_capture_param_t captureParams = {0};
    captureParams.captureInputSel = 0;
    captureParams.edge0 = kPWM_RisingEdge;
    captureParams.edge1 = kPWM_FallingEdge;
    captureParams.enableOneShotCapture = false;
    //captureParams.fifoWatermark = 0;
    //captureParams.edgeCompareValue = 0;
    PWM_SetupInputCapture(BOARD_PWM_BASEADDR, kPWM_Module_0, kPWM_PwmX, &amp;amp;captureParams);

    //PWM_SetPwmLdok(BOARD_PWM_BASEADDR, kPWM_Control_Module_0, true);

    PWM_StartTimer(BOARD_PWM_BASEADDR, kPWM_Control_Module_0);

    while (1)
    {
        uint16_t rising = BOARD_PWM_BASEADDR-&amp;gt;SM[kPWM_Module_0].CVAL0;
        uint16_t falling = BOARD_PWM_BASEADDR-&amp;gt;SM[kPWM_Module_0].CVAL1;
        uint16_t high = falling &amp;gt; rising ? falling - rising : (falling + 0x10000) - rising;
        PRINTF("rising: %u  falling: %u  high: %u\r\n",rising, falling, high);
        SDK_DelayAtLeastUs(100000, SDK_DEVICE_MAXIMUM_CPU_CLOCK_FREQUENCY);
    }
}&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 19 Nov 2025 09:33:16 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MCX-Microcontrollers/MCXA156-PWM-Capture-Setup/m-p/2207512#M4389</guid>
      <dc:creator>ZRay</dc:creator>
      <dc:date>2025-11-19T09:33:16Z</dc:date>
    </item>
  </channel>
</rss>

