<?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: input frequency capture in Kinetis Microcontrollers</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/input-frequency-capture/m-p/1793587#M65967</link>
    <description>&lt;P&gt;Hi, Pandi,&lt;/P&gt;
&lt;P&gt;When you input a tested signal to FTM2_CH1 pin, can you enter the FTM2_IRQHandler()?&lt;/P&gt;
&lt;P&gt;If you can, it is okay, in the FTM2_IRQHandler(), you can check the overflow flag, if it is set, just clear the flag, and add 0xFFFF. While, you can assign the FTM2_MOD register to 0xFFFF in the FTM2 init code.&lt;/P&gt;
&lt;P&gt;Void FTM2_ISR(void)&lt;BR /&gt;{&lt;BR /&gt;&lt;BR /&gt;if(FTM2_STATUS&amp;amp;0x02)&lt;BR /&gt;{&lt;/P&gt;
&lt;P&gt;FTM2_STATUS&amp;amp;=0xFD;&lt;BR /&gt;tempPrev=temp;&lt;BR /&gt;temp=FTM0_C0V; //read FTM0 counter register&lt;BR /&gt;diff=temp-tempPrev;&lt;/P&gt;
&lt;P&gt;if(FTM2_SC&amp;amp;0x80)&lt;/P&gt;
&lt;P&gt;{&lt;BR /&gt;diff=0xFFFF+diff;&lt;/P&gt;
&lt;P&gt;FTM2_SC&amp;amp;=~(0x80); //clear overflow flag&lt;BR /&gt;GPIOC_PTOR=0x80;&lt;BR /&gt;asm("nop"); //set a break point here&lt;BR /&gt;}&lt;BR /&gt;}&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Hope it can help you&lt;/P&gt;
&lt;P&gt;BR&lt;/P&gt;
&lt;P&gt;XiangJun Rong&lt;/P&gt;</description>
    <pubDate>Tue, 23 Jan 2024 07:53:16 GMT</pubDate>
    <dc:creator>xiangjun_rong</dc:creator>
    <dc:date>2024-01-23T07:53:16Z</dc:date>
    <item>
      <title>input frequency capture</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/input-frequency-capture/m-p/1791657#M65957</link>
      <description>&lt;P&gt;Hi everyone&lt;/P&gt;&lt;P&gt;how to configure input capture mode KV31F512VLL12 guide me and if&amp;nbsp; you have sample program give to me&amp;nbsp; help for us.&lt;/P&gt;&lt;P&gt;I `m trying this code correct or not if not means any changes&amp;nbsp; guide me&amp;nbsp;&lt;/P&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;P&gt;&lt;SPAN&gt;void&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;TIM1_init&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;void&lt;/SPAN&gt;&lt;SPAN&gt;) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;SIM-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SCGC5&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;|= SIM_SCGC5_PORTB(1);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;PORTB-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;PCR&lt;/SPAN&gt;&lt;SPAN&gt;[0] = PORT_PCR_MUX(0x3);&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;// Set pin as ALT3 (TIM1_CH1)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;SIM-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SCGC6&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;|= SIM_SCGC6_FTM1(1);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM1-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SC&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;= 0;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM1-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;MOD&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;= 1999;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM1-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;CONTROLS&lt;/SPAN&gt;&lt;SPAN&gt;[1].&lt;/SPAN&gt;&lt;SPAN&gt;CnSC&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;= FTM_CnSC_MSB_MASK | FTM_CnSC_ELSB_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM1-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;CONTROLS&lt;/SPAN&gt;&lt;SPAN&gt;[1].&lt;/SPAN&gt;&lt;SPAN&gt;CnV&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;= 1000;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM1-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SC&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;= FTM_SC_PS(7) | FTM_SC_TOF(1);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;void&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;TIM2_init&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;void&lt;/SPAN&gt;&lt;SPAN&gt;) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;// Enable clock for PORTA&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;SIM-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SCGC5&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;|= SIM_SCGC5_PORTA_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;PORTA-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;PCR&lt;/SPAN&gt;&lt;SPAN&gt;[1] = PORT_PCR_MUX(0x3);&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;// Set pin as ALT3 (TIM2_CH1)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;SIM-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SCGC6&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;|= SIM_SCGC6_FTM2(1);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM2-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SC&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;= 0;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM2-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;CONTROLS&lt;/SPAN&gt;&lt;SPAN&gt;[1].&lt;/SPAN&gt;&lt;SPAN&gt;CnSC&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;= FTM_CnSC_ELSA_MASK | FTM_CnSC_ELSB_MASK |FTM_CnSC_CHIE_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM2-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SC&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;= FTM_SC_PS(7) | FTM_SC_TOF(1);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;NVIC_EnableIRQ(&lt;/SPAN&gt;&lt;SPAN&gt;FTM2_IRQn&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;void&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;FTM2_IRQHandler&lt;/SPAN&gt;&lt;SPAN&gt;() {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;// Clear channel flag&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM2-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;CONTROLS&lt;/SPAN&gt;&lt;SPAN&gt;[1].&lt;/SPAN&gt;&lt;SPAN&gt;CnSC&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;amp;= ~FTM_CnSC_CHF_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;if&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;(gap == 0) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;counter0 = FTM2-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;CONTROLS&lt;/SPAN&gt;&lt;SPAN&gt;[1].&lt;/SPAN&gt;&lt;SPAN&gt;CnV&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;gap = 1;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;}&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;else&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;counter1 = FTM2-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;CONTROLS&lt;/SPAN&gt;&lt;SPAN&gt;[1].&lt;/SPAN&gt;&lt;SPAN&gt;CnV&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;if&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;(counter1 &amp;gt; counter0) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Counter = counter1 - counter0;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Frequency = 10000 / Counter;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;}&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;else&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Counter = counter1 + 0xFFFF - counter0 + 1;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Frequency = 10000 / Counter;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;counter0 = counter1;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Thank you&lt;/P&gt;&lt;P&gt;BR&lt;/P&gt;&lt;P&gt;PANDI&lt;/P&gt;</description>
      <pubDate>Fri, 19 Jan 2024 07:05:04 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/input-frequency-capture/m-p/1791657#M65957</guid>
      <dc:creator>pandi</dc:creator>
      <dc:date>2024-01-19T07:05:04Z</dc:date>
    </item>
    <item>
      <title>Re: input frequency capture</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/input-frequency-capture/m-p/1793587#M65967</link>
      <description>&lt;P&gt;Hi, Pandi,&lt;/P&gt;
&lt;P&gt;When you input a tested signal to FTM2_CH1 pin, can you enter the FTM2_IRQHandler()?&lt;/P&gt;
&lt;P&gt;If you can, it is okay, in the FTM2_IRQHandler(), you can check the overflow flag, if it is set, just clear the flag, and add 0xFFFF. While, you can assign the FTM2_MOD register to 0xFFFF in the FTM2 init code.&lt;/P&gt;
&lt;P&gt;Void FTM2_ISR(void)&lt;BR /&gt;{&lt;BR /&gt;&lt;BR /&gt;if(FTM2_STATUS&amp;amp;0x02)&lt;BR /&gt;{&lt;/P&gt;
&lt;P&gt;FTM2_STATUS&amp;amp;=0xFD;&lt;BR /&gt;tempPrev=temp;&lt;BR /&gt;temp=FTM0_C0V; //read FTM0 counter register&lt;BR /&gt;diff=temp-tempPrev;&lt;/P&gt;
&lt;P&gt;if(FTM2_SC&amp;amp;0x80)&lt;/P&gt;
&lt;P&gt;{&lt;BR /&gt;diff=0xFFFF+diff;&lt;/P&gt;
&lt;P&gt;FTM2_SC&amp;amp;=~(0x80); //clear overflow flag&lt;BR /&gt;GPIOC_PTOR=0x80;&lt;BR /&gt;asm("nop"); //set a break point here&lt;BR /&gt;}&lt;BR /&gt;}&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Hope it can help you&lt;/P&gt;
&lt;P&gt;BR&lt;/P&gt;
&lt;P&gt;XiangJun Rong&lt;/P&gt;</description>
      <pubDate>Tue, 23 Jan 2024 07:53:16 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/input-frequency-capture/m-p/1793587#M65967</guid>
      <dc:creator>xiangjun_rong</dc:creator>
      <dc:date>2024-01-23T07:53:16Z</dc:date>
    </item>
  </channel>
</rss>

