<?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>S12 / MagniV MicrocontrollersのトピックRe: how to use timer module  as PWM input capture?</title>
    <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/how-to-use-timer-module-as-PWM-input-capture/m-p/1792786#M19639</link>
    <description>&lt;P&gt;solved&lt;/P&gt;</description>
    <pubDate>Mon, 22 Jan 2024 08:35:36 GMT</pubDate>
    <dc:creator>NoahXu</dc:creator>
    <dc:date>2024-01-22T08:35:36Z</dc:date>
    <item>
      <title>how to use timer module  as PWM input capture?</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/how-to-use-timer-module-as-PWM-input-capture/m-p/1791102#M19635</link>
      <description>&lt;P&gt;for example i want to use TIM0Ch1 as input caputure to get the pwm signal .&lt;/P&gt;&lt;P&gt;&lt;FONT color="#FF0000"&gt;step1,&amp;nbsp; i config the register of timer0&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;"&lt;/P&gt;&lt;DIV&gt;void initTIM(void)&lt;/DIV&gt;&lt;DIV&gt;{&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;TIM0TIOS_IOS1 = 0; // Input Capture/Output Compare Channel3 Configuration//Input&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;TIM0TIE_C1I &amp;nbsp; &amp;nbsp; = 1; // Input Capture/Output Compare channel3 //Interrupt Enable&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;TIM0TCTL4_EDG1A = 1; // falling edge channel3&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;TIM0TCTL4_EDG1B = 1;&amp;nbsp; &amp;nbsp; // rising edge channel3&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;TIM0OCPD_OCPD3 = 1; // Enabled | Output compare pin disconnect register&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;TIM0OCPD_OCPD2 = 1; // Enabled | Output compare pin disconnect register&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;TIM0OCPD_OCPD1 = 1; // Enabled | Output compare pin disconnect register&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;TIM0OCPD_OCPD0 = 1; // Enabled | Output compare pin disconnect register&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;TIM0PTPSR = 49; // Timer Pre-scaler =49+1&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;TIM0TSCR1_PRNT&amp;nbsp; = 1; // Precision timer divider enable&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;TIM0TSCR2_TOI = 1; // Overflow interrupt enabled&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;void EnableTIM()&lt;/DIV&gt;&lt;DIV&gt;{&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;TIM0TC1 = 0;&amp;nbsp; // Timer Input Capture/Output channel3 Compare Registers High and Low 0–1(TCxH and TCxL)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;TIM0TSCR1_TEN = 1; // Enabled | Timer Enable &lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;&lt;P&gt;"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#FF0000"&gt;step2&amp;nbsp; setup isr for tim0ch1&lt;/FONT&gt;&lt;/P&gt;&lt;DIV&gt;interrupt VectorNumber_Vtim0ch1 void TIM0chan1_ISR(void)&lt;/DIV&gt;&lt;DIV&gt;{&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;// Read PWM input control pin and update status&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;PWMControlUpdate(TIM0TC1, &amp;amp;pwmControlData);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;// Read the PWM Control output&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;pwmControlData.outputValue = PWMControlGetOutputValue(&amp;amp;pwmControlData);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;// Toggle edge detection&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;if(pwmControlData.flags.risingEdge)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;{ &lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;TIM0TCTL4_EDG1A = 1;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;TIM0TCTL4_EDG1B = 0;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;if(pwmControlData.flags.fallingEdge)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;TIM0TCTL4_EDG1A = 0;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;TIM0TCTL4_EDG1B = 1;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;// Clear interrupt flag&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;TIM0TFLG1 = TIM0TFLG1_C1F_MASK; //TIM0TFLG1_C0F_MASK | TIM0TFLG1_C1F_MASK | TIM0TFLG1_C2F_MASK&amp;nbsp; | TIM0TFLG1_C3F_MASK;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="#FF0000"&gt;step3 calculate pwm input value&amp;nbsp;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="#000000"&gt;...&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="#000000"&gt;about the register setup is there anything wrong?&lt;/FONT&gt;&lt;/DIV&gt;</description>
      <pubDate>Thu, 18 Jan 2024 13:28:12 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/how-to-use-timer-module-as-PWM-input-capture/m-p/1791102#M19635</guid>
      <dc:creator>NoahXu</dc:creator>
      <dc:date>2024-01-18T13:28:12Z</dc:date>
    </item>
    <item>
      <title>Re: how to use timer module  as PWM input capture?</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/how-to-use-timer-module-as-PWM-input-capture/m-p/1792786#M19639</link>
      <description>&lt;P&gt;solved&lt;/P&gt;</description>
      <pubDate>Mon, 22 Jan 2024 08:35:36 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/how-to-use-timer-module-as-PWM-input-capture/m-p/1792786#M19639</guid>
      <dc:creator>NoahXu</dc:creator>
      <dc:date>2024-01-22T08:35:36Z</dc:date>
    </item>
  </channel>
</rss>

