<?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: Flextimer on K60, capture rising edge in Kinetis Microcontrollers</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Flextimer-on-K60-capture-rising-edge/m-p/286033#M11035</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;yes&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 22 Mar 2013 14:25:35 GMT</pubDate>
    <dc:creator>SergeMaslenniko</dc:creator>
    <dc:date>2013-03-22T14:25:35Z</dc:date>
    <item>
      <title>Flextimer on K60, capture rising edge</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Flextimer-on-K60-capture-rising-edge/m-p/286013#M11015</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi i am trying to capture rising edge with a flextimer. I wont to calculate the time from one rising edge to the next one. I am trying in this way:&lt;/P&gt;&lt;P&gt;void initFlexTimer()&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp; unsigned int irPort;&lt;/P&gt;&lt;P&gt;&amp;nbsp; //Port initialisering&lt;/P&gt;&lt;P&gt;&amp;nbsp; definePort();&lt;/P&gt;&lt;P&gt;&amp;nbsp; fnDebugMsg("IR\n");&lt;/P&gt;&lt;P&gt;&amp;nbsp; irPort = _READ_PORT_MASK(C, PORTC_BIT6);&lt;/P&gt;&lt;P&gt;&amp;nbsp; fnDebugDec(irPort, 0);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; //Enable the Clock to the FTM0 Module&lt;/P&gt;&lt;P&gt;&amp;nbsp; SIM_SCGC6 |= SIM_SCGC6_FTM0;&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM0_SC |= FTM_SC_PS_1; // clock prescaler / 1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; //turn off FTM write protection;&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM0_MODE |= FTM_MODE_WPDIS;&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM0_MODE |= FTM_MODE_FTMEN;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM0_SC = 0x0;&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM0_SC = 0; //Make sure its Off!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM0_CNT = 0; //Reset counter, make sure we are starting at 0&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM0_MOD = (FTM_CSC_ELSA | FTM_CSC_ELSB);&amp;nbsp; //Set the overflow rate&lt;/P&gt;&lt;P&gt;&amp;nbsp; //FTM0_MOD = IRQ_RISING_EDGE;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM0_SC |= FTM_SC_TOIE; //Enable the interrupt mask.&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM0_SC |= FTM_SC_CLKS_SYS; //Select the System Clock&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; fnDebugMsg("Timer is running, with value: ");&lt;/P&gt;&lt;P&gt;&amp;nbsp; //fnDebugDec(FTM0_CNT, 0);&lt;/P&gt;&lt;P&gt;&amp;nbsp; fnDebugDec(FTM0_MOD, 0);&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I dosen´t seems to work, i just geth the value 12 the hole time. Someone now whats maybe is wrong ?&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 06 Mar 2013 09:18:04 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Flextimer-on-K60-capture-rising-edge/m-p/286013#M11015</guid>
      <dc:creator>Futte</dc:creator>
      <dc:date>2013-03-06T09:18:04Z</dc:date>
    </item>
    <item>
      <title>Re: Flextimer on K60, capture rising edge</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Flextimer-on-K60-capture-rising-edge/m-p/286014#M11016</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Futte,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;it makes no sense, I guess... because you reset it below&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM0_SC |= FTM_SC_PS_1; // clock prescaler / 1&lt;/P&gt;&lt;P&gt;... &lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM0_SC = 0x0;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;-------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;Do you switch on Counter Clock Source?&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;it's written in K60P144M100SF2RM_2.pdf:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The CLKS[1:0] bits in the SC register select one of three possible clock sources for the&lt;/P&gt;&lt;P&gt;FTM counter or disable the FTM counter. After any MCU reset, CLKS[1:0] = 0:0 so no&lt;/P&gt;&lt;P&gt;clock source is selected.&lt;/P&gt;&lt;P&gt;The CLKS[1:0] bits may be read or written at any time. Disabling the FTM counter by&lt;/P&gt;&lt;P&gt;writing 0:0 to the CLKS[1:0] bits does not affect the FTM counter value or other&lt;/P&gt;&lt;P&gt;registers.&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 11 Mar 2013 13:58:53 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Flextimer-on-K60-capture-rising-edge/m-p/286014#M11016</guid>
      <dc:creator>SergeMaslenniko</dc:creator>
      <dc:date>2013-03-11T13:58:53Z</dc:date>
    </item>
    <item>
      <title>Re: Flextimer on K60, capture rising edge</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Flextimer-on-K60-capture-rising-edge/m-p/286015#M11017</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;I have now try to change my code to:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="FTM1.JPG"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/119141iBC08ACEC8318B4FA/image-size/large?v=v2&amp;amp;px=999" role="button" title="FTM1.JPG" alt="FTM1.JPG" /&gt;&lt;/span&gt; &lt;/P&gt;&lt;P&gt;Its not make any sence to me any more&lt;/P&gt;&lt;P&gt;i have try to test the example FlexTimer_NVIC_IRQ and tryet to follow that example in som parts but i cant geth it&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 11 Mar 2013 14:17:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Flextimer-on-K60-capture-rising-edge/m-p/286015#M11017</guid>
      <dc:creator>Futte</dc:creator>
      <dc:date>2013-03-11T14:17:27Z</dc:date>
    </item>
    <item>
      <title>Re: Flextimer on K60, capture rising edge</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Flextimer-on-K60-capture-rising-edge/m-p/286016#M11018</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;i have been looking in to this also&lt;/P&gt;&lt;P&gt;&lt;A href="http://cache.freescale.com/files/32bit/doc/app_note/AN4381.pdf" title="http://cache.freescale.com/files/32bit/doc/app_note/AN4381.pdf"&gt;http://cache.freescale.com/files/32bit/doc/app_note/AN4381.pdf&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 11 Mar 2013 14:19:14 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Flextimer-on-K60-capture-rising-edge/m-p/286016#M11018</guid>
      <dc:creator>Futte</dc:creator>
      <dc:date>2013-03-11T14:19:14Z</dc:date>
    </item>
    <item>
      <title>Re: Flextimer on K60, capture rising edge</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Flextimer-on-K60-capture-rising-edge/m-p/286017#M11019</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;That seems to be working.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;void FlexTimerCapturingInitial();&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; void TaskFreq(uint_32 data)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;dev::tProperties *Properties = (dev::tProperties*)data;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;unsigned short FtmResult[10];&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;unsigned short FtmResultIndex = 0;;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;memset(FtmResult, 0, sizeof(FtmResult));&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;FlexTimerCapturingInitial();&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;FTM_MemMapPtr FtmMmp = FTM0_BASE_PTR;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;mcu::registers::ftm::tCSC* Csc0 = (mcu::registers::ftm::tCSC*)&amp;amp;FtmMmp-&amp;gt;CONTROLS[0].CnSC;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;//mcu::registers::ftm::tCSC* Csc1 = (mcu::registers::ftm::tCSC*)&amp;amp;FtmMmp-&amp;gt;CONTROLS[1].CnSC;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;mcu::registers::ftm::tCNT* Cnt = (mcu::registers::ftm::tCNT*)&amp;amp;FtmMmp-&amp;gt;CNT;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;mcu::registers::ftm::tCV* Cv0 = (mcu::registers::ftm::tCV*)&amp;amp;FtmMmp-&amp;gt;CONTROLS[0].CnV;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;//mcu::registers::ftm::tCV* Cv1 = (mcu::registers::ftm::tCV*)&amp;amp;FtmMmp-&amp;gt;CONTROLS[1].CnV;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;memset(FtmResult, 0, sizeof(FtmResult));&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;for (;;)&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;{&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;Cnt-&amp;gt;Fields.CNT = 0;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;Csc0-&amp;gt;Fields.CHF = 0;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;while(!Csc0-&amp;gt;Fields.CHF);&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;FtmResult[FtmResultIndex++] = Cv0-&amp;gt;Fields.VAL;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;if (FtmResultIndex &amp;gt;= sizeof(FtmResult) / 2)&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;{&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;printf("&amp;gt;&amp;gt;");&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;for (int i = 0; i &amp;lt; FtmResultIndex; ++i)&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;printf(" %04x ", FtmResult[i]);&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;printf("\n");&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;_time_delay(1000);&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;memset(FtmResult, 0, sizeof(FtmResult));&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;FtmResultIndex = 0;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;}&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;//if (Csc0-&amp;gt;Fields.CHF)//This bit is set when the counter value is captured into CnV&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;//{&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("Ch1: %04x ",Cv0-&amp;gt;Fields.VAL);&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;//}&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;//if (Csc1-&amp;gt;Fields.CHF)//This bit is set when the counter value is captured into CnV&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;//{&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("Ch2: %04x ",Cv1-&amp;gt;Fields.VAL);&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;//}&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;//printf("\xd");&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;//_time_delay(1000);&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;}&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;//_task_abort(TaskPort);&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;//_task_destroy(TaskPort);&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;//_time_delay(1000); // 1 s&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;//_task_restart(_task_get_id(), &amp;amp;data, 0);&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; void FlexTimerCapturingInitial()&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;PORT_MemMapPtr PCtlMmp = (PORT_MemMapPtr)PORTC_BASE_PTR;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;SIM_MemMapPtr SimMmp = SIM_BASE_PTR;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;FTM_MemMapPtr FtmMmp = FTM0_BASE_PTR;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;PCtlMmp-&amp;gt;PCR[1] = PORT_PCR_MUX(4);&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;PCtlMmp-&amp;gt;PCR[2] = PORT_PCR_MUX(4);&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;//Enable clock to FlexTimer module&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;mcu::registers::sim::tSCGC6* SimScgc6 = (mcu::registers::sim::tSCGC6*)&amp;amp;SimMmp-&amp;gt;SCGC6;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;SimScgc6-&amp;gt;Fields.FTM0 = 1;//Enable clock to FlexTimer module&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;mcu::registers::sim::tSOPT4* SimSopt4 = (mcu::registers::sim::tSOPT4*)&amp;amp;SimMmp-&amp;gt;SOPT4;//It seems to be in order.&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;//Captured frequencies are from 100 Hz up to 1600 Hz.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;//The FTM has a 16-bit counter.&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;mcu::registers::ftm::tSC* SC = (mcu::registers::ftm::tSC*)&amp;amp;FtmMmp-&amp;gt;SC;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;mcu::registers::ftm::tMODE* Mode = (mcu::registers::ftm::tMODE*)&amp;amp;FtmMmp-&amp;gt;MODE;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;//SC-&amp;gt;Fields.TOIE = 0;//Disable Timer Overflow Interrupts (Default)&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;//SC-&amp;gt;Fields.CPWMS = 0;//FTM counter operates in up counting mode (Default)&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;//Mode-&amp;gt;Fields.WPDIS = 1;//Write Protection Disable (Default)&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;//mcu::registers::ftm::tCOMBINE* Combine = (mcu::registers::ftm::tCOMBINE*)&amp;amp;FtmMmp-&amp;gt;COMBINE;//It seems to be in order.&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;mcu::registers::ftm::tCNTIN* Cntin = (mcu::registers::ftm::tCNTIN*)&amp;amp;FtmMmp-&amp;gt;CNTIN;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;Cntin-&amp;gt;Fields.INIT = 0x0000;//It is expected that the input capture mode be used only with CNTIN = 0x0000;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;mcu::registers::ftm::tMOD* Mod = (mcu::registers::ftm::tMOD*)&amp;amp;FtmMmp-&amp;gt;MOD;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;Mod-&amp;gt;Fields.MOD = 0xFFFF;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;mcu::registers::ftm::tCSC* Csc0 = (mcu::registers::ftm::tCSC*)&amp;amp;FtmMmp-&amp;gt;CONTROLS[0].CnSC;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;//&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;Csc0-&amp;gt;Fields.DMA = 1;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;//Csc0-&amp;gt;Fields.CHIE = 0;//Interrupts are disabled (Default)&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;//Csc0-&amp;gt;Fields.MSA = 0; (Default)&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;//Csc0-&amp;gt;Fields.MSB = 0; (Default)&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;Csc0-&amp;gt;Fields.ELSA = 1;//Capture on Rising Edge&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;//Csc0-&amp;gt;Fields.ELSB = 0;//Do not capture on Falling Edge (Default)&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;mcu::registers::ftm::tCSC* Csc1 = (mcu::registers::ftm::tCSC*)&amp;amp;FtmMmp-&amp;gt;CONTROLS[1].CnSC;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;//Csc1-&amp;gt;Fields.DMA = 1;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;//Csc1-&amp;gt;Fields.CHIE = 0;//Interrupts are disabled (Default)&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;Csc1-&amp;gt;Fields.ELSA = 1;//Capture on Rising Edge&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;//Csc1-&amp;gt;Fields.ELSB = 0;//Do not capture on Falling Edge (Default)&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;///////////////////////////////////////////////////////////////////////////////////////////&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;Mode-&amp;gt;Fields.FTMEN = 1;//FTM Enable. All registers including the FTM-specific registers (second set of registers) are available for use with no restrictions.&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;SC-&amp;gt;Fields.CLKS = 0x01;//System Clock 100 Mhz&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;SC-&amp;gt;Fields.PS = 0x07;//divide by 128 -&amp;gt; 781250 Hz = 0xBEBC2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;// 781250 / 100 (min freq of DUT) = 7812.50 and that is less than 0xFFFF, so it's good! :smileyhappy:&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The result is:&lt;/P&gt;&lt;P&gt;&amp;gt;&amp;gt; 00fc&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&lt;/P&gt;&lt;P&gt;&amp;gt;&amp;gt; 01ba&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&lt;/P&gt;&lt;P&gt;&amp;gt;&amp;gt; 0010&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&lt;/P&gt;&lt;P&gt;&amp;gt;&amp;gt; 00ce&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&lt;/P&gt;&lt;P&gt;&amp;gt;&amp;gt; 018b&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&lt;/P&gt;&lt;P&gt;&amp;gt;&amp;gt; 0248&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&lt;/P&gt;&lt;P&gt;&amp;gt;&amp;gt; 009f&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&lt;/P&gt;&lt;P&gt;&amp;gt;&amp;gt; 015c&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&lt;/P&gt;&lt;P&gt;&amp;gt;&amp;gt; 021a&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&lt;/P&gt;&lt;P&gt;&amp;gt;&amp;gt; 006f&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Values in the first column are not valid because measurements start some time later previous rising edges, but the others are good.&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 13 Mar 2013 13:27:07 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Flextimer-on-K60-capture-rising-edge/m-p/286017#M11019</guid>
      <dc:creator>SergeMaslenniko</dc:creator>
      <dc:date>2013-03-13T13:27:07Z</dc:date>
    </item>
    <item>
      <title>Re: Flextimer on K60, capture rising edge</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Flextimer-on-K60-capture-rising-edge/m-p/286018#M11020</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hmm i tryit again but it still not working. Have you tryit on K60 and in CodeWarrior?&lt;/P&gt;&lt;P&gt;Can you meybe send the file?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 13 Mar 2013 13:44:02 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Flextimer-on-K60-capture-rising-edge/m-p/286018#M11020</guid>
      <dc:creator>Futte</dc:creator>
      <dc:date>2013-03-13T13:44:02Z</dc:date>
    </item>
    <item>
      <title>Re: Flextimer on K60, capture rising edge</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Flextimer-on-K60-capture-rising-edge/m-p/286019#M11021</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I compile it with IAR for K60 (rev. 4N30D).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Remove everything that is not needed, like dev::tProperties *Properties = (dev::tProperties*)data; and so on.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Actually it works in polled mode so the task priority is to be rather high.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Acute files are attached.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 13 Mar 2013 13:58:07 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Flextimer-on-K60-capture-rising-edge/m-p/286019#M11021</guid>
      <dc:creator>SergeMaslenniko</dc:creator>
      <dc:date>2013-03-13T13:58:07Z</dc:date>
    </item>
    <item>
      <title>Re: Flextimer on K60, capture rising edge</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Flextimer-on-K60-capture-rising-edge/m-p/286020#M11022</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Serge&lt;/P&gt;&lt;P&gt;I dont geth it if i take away all thing like dev::tProperties *Properties = (dev::tProperties*)data i will not power up my flextimer&lt;/P&gt;&lt;P&gt;I am so confussed about this timer so i think i maybe sound to stupid now :smileywink:&lt;/P&gt;&lt;P&gt;Where are you making the initialisation off this:&lt;/P&gt;&lt;P&gt;void FlexTimerCapturingInitial();&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have now tryit to do my program in this way:&lt;/P&gt;&lt;P&gt;volatile unsigned char startPulse = 0;&lt;/P&gt;&lt;P&gt;extern void ftm1_isr(void)&lt;BR /&gt;{&lt;BR /&gt; unsigned char pulseWidth = 0;&lt;BR /&gt; unsigned char stopPulse = FTM1_C0V;&lt;BR /&gt; &lt;BR /&gt; //Clear channel interrupt flag(CHF)&lt;BR /&gt; FTM1_C0SC &amp;amp;= ~0x80;&lt;BR /&gt; &lt;BR /&gt; pulseWidth = stopPulse - startPulse;&lt;BR /&gt; &lt;BR /&gt; if(pulseWidth&amp;gt; 1)&lt;BR /&gt; {&lt;BR /&gt;&amp;nbsp; fnDebugDec(pulseWidth++, 0);&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt; }&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;void setupFTM1()&lt;BR /&gt;{&lt;BR /&gt; SIM_SCGC6 |= SIM_SCGC6_FTM1; /* Enable clock for FTM2 */&lt;BR /&gt; //Flex timer1 input filter configuration&lt;BR /&gt; FTM1_FILTER = 0x07;&lt;BR /&gt; &lt;BR /&gt; //Flex timer configuration&lt;BR /&gt; FTM1_SC = 0x0C; // TOF=0 TOIE=0 CPWMS=0 CLKS=01 (system clock) PS=100 (divide by 16)&lt;BR /&gt; FTM1_MOD = 0xFFFF;// modulo to max&lt;BR /&gt; FTM1_C0SC = 0x44;&amp;nbsp; // CHF=0 CHIE=1 MSB=0 MSA=0 ELSB=0 ELSA=1 DMA=0&lt;BR /&gt; &lt;BR /&gt; //Interrupt-&lt;BR /&gt; fnEnterInterrupt(irq_FTM0_ID, PRIORITY_EMAC, ftm1_isr);&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt; PORTC_PCR6|= (0|PORT_ISF|PORT_MUX_ALT4);&lt;/P&gt;&lt;P&gt; &lt;BR /&gt; &lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;extern void fnMyTestTask(TTASKTABLE *ptrTaskTable)&lt;BR /&gt;{&lt;BR /&gt; SIM_SCGC5 |= (SIM_SCGC5_PORTA | &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIM_SCGC5_PORTB | &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIM_SCGC5_PORTC | &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIM_SCGC5_PORTD | &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIM_SCGC5_PORTE);&lt;BR /&gt; setupFTM1();&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;But when i debug i am ending whit my mux and program is ending. I think this is my problem. I am using uTasker as operating system for this small projekt.&lt;/P&gt;&lt;P&gt;I have maket a small program for ir and that is working with some LED.&lt;/P&gt;&lt;P&gt;I think my initialization for IR input to the timer maybe is wrong ?&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 13 Mar 2013 14:21:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Flextimer-on-K60-capture-rising-edge/m-p/286020#M11022</guid>
      <dc:creator>Futte</dc:creator>
      <dc:date>2013-03-13T14:21:55Z</dc:date>
    </item>
    <item>
      <title>Re: Flextimer on K60, capture rising edge</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Flextimer-on-K60-capture-rising-edge/m-p/286021#M11023</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I guess you don't need power up the FTM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;according to AN4381 it's needed to make some steps:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;1. enable the clock for FTM1&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;SIM_SCGC6 |= SIM_SCGC6_FTM1_MASK;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;2. enable the counter&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;FTM1_MODE |= FTM_MODE_FTMEN_MASK;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;3. and the like... for input capturing it'll be different&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;//enable the counter to run in the BDM mode&lt;/P&gt;&lt;P&gt;FTM1_CONF |= FTM_CONF_BDMMODE(3);&lt;/P&gt;&lt;P&gt;//load the Modulo register and counter initial value&lt;/P&gt;&lt;P&gt;FTM1_MOD = 4095;&lt;/P&gt;&lt;P&gt;FTM1_CNTIN = 0;&lt;/P&gt;&lt;P&gt;//configuring FTM for quadrature mode&lt;/P&gt;&lt;P&gt;FTM1_QDCTRL |= FTM_QDCTRL_QUADEN_MASK;&lt;/P&gt;&lt;P&gt;// start the timer clock, source is the external clock&lt;/P&gt;&lt;P&gt;FTM1_SC |= FTM_SC_CLKS(3);&lt;/P&gt;&lt;P&gt;//configuring the input pins:&lt;/P&gt;&lt;P&gt;PORTA_PCR8 = PORT_PCR_MUX(6); // FTM1 CH0&lt;/P&gt;&lt;P&gt;PORTA_PCR9 = PORT_PCR_MUX(6); // FTM1 CH1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;--------------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void FlexTimerCapturingInitial()&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORT_MemMapPtr PCtlMmp = (PORT_MemMapPtr)PORTC_BASE_PTR;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIM_MemMapPtr SimMmp = SIM_BASE_PTR;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FTM_MemMapPtr FtmMmp = FTM0_BASE_PTR;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;1. ports are FTM-inputs&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PCtlMmp-&amp;gt;PCR[1] = PORT_PCR_MUX(4);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PCtlMmp-&amp;gt;PCR[2] = PORT_PCR_MUX(4);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;2.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Enable clock to FlexTimer module&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mcu::registers::sim::tSCGC6* SimScgc6 = (mcu::registers::sim::tSCGC6*)&amp;amp;SimMmp-&amp;gt;SCGC6;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;SimScgc6-&amp;gt;Fields.FTM0 = 1;//Enable clock to FlexTimer module&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mcu::registers::sim::tSOPT4* SimSopt4 = (mcu::registers::sim::tSOPT4*)&amp;amp;SimMmp-&amp;gt;SOPT4;//It seems to be in order.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mcu::registers::ftm::tSC* SC = (mcu::registers::ftm::tSC*)&amp;amp;FtmMmp-&amp;gt;SC;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mcu::registers::ftm::tMODE* Mode = (mcu::registers::ftm::tMODE*)&amp;amp;FtmMmp-&amp;gt;MODE;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mcu::registers::ftm::tCNTIN* Cntin = (mcu::registers::ftm::tCNTIN*)&amp;amp;FtmMmp-&amp;gt;CNTIN;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Cntin-&amp;gt;Fields.INIT = 0x0000;//It is expected that the input capture mode be used only with CNTIN = 0x0000;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mcu::registers::ftm::tMOD* Mod = (mcu::registers::ftm::tMOD*)&amp;amp;FtmMmp-&amp;gt;MOD;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mod-&amp;gt;Fields.MOD = 0xFFFF;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mcu::registers::ftm::tCSC* Csc0 = (mcu::registers::ftm::tCSC*)&amp;amp;FtmMmp-&amp;gt;CONTROLS[0].CnSC;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Csc0-&amp;gt;Fields.ELSA = 1;//Capture on Rising Edge&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ///////////////////////////////////////////////////////////////////////////////////////////&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Switching on the FTM&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mode-&amp;gt;Fields.FTMEN = 1;//FTM Enable. All registers including the FTM-specific registers (second set of registers) are available for use with no restrictions.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Clock + prescaler&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SC-&amp;gt;Fields.CLKS = 0x01;//System Clock 100 Mhz&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SC-&amp;gt;Fields.PS = 0x07;//divide by 128 -&amp;gt; 781250 Hz = 0xBEBC2&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 781250 / 100 (min freq of DUT) = 7812.50 and that is less than 0xFFFF, so it's good! :smileyhappy:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 13 Mar 2013 14:55:29 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Flextimer-on-K60-capture-rising-edge/m-p/286021#M11023</guid>
      <dc:creator>SergeMaslenniko</dc:creator>
      <dc:date>2013-03-13T14:55:29Z</dc:date>
    </item>
    <item>
      <title>Re: Flextimer on K60, capture rising edge</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Flextimer-on-K60-capture-rising-edge/m-p/286022#M11024</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Serge&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;I think my problem is that i newer geth anything in to my timer. I can make a initialization of the input from my ir, but newer geth in to go into my timer :smileysad: &lt;/P&gt;&lt;P&gt;are you now how to do that ?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 14 Mar 2013 10:40:24 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Flextimer-on-K60-capture-rising-edge/m-p/286022#M11024</guid>
      <dc:creator>Futte</dc:creator>
      <dc:date>2013-03-14T10:40:24Z</dc:date>
    </item>
    <item>
      <title>Re: Flextimer on K60, capture rising edge</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Flextimer-on-K60-capture-rising-edge/m-p/286023#M11025</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;why do you decide to initialize something in IR?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Write your code here, please.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 14 Mar 2013 13:08:48 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Flextimer-on-K60-capture-rising-edge/m-p/286023#M11025</guid>
      <dc:creator>SergeMaslenniko</dc:creator>
      <dc:date>2013-03-14T13:08:48Z</dc:date>
    </item>
    <item>
      <title>Re: Flextimer on K60, capture rising edge</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Flextimer-on-K60-capture-rising-edge/m-p/286024#M11026</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Becource i not elsa can se how to detect anything. I am comming from a AVR32 (STK500) and that is not that difficoult to use timers. I think my brain just getting confussed&lt;/P&gt;&lt;P&gt;my code is&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;volatile unsigned char startPulse = 0;&lt;/P&gt;&lt;P&gt;extern void ftm1_isr(void)&lt;BR /&gt;{&lt;BR /&gt; unsigned char pulseWidth = 0;&lt;BR /&gt; unsigned char stopPulse = FTM1_C0V;&lt;BR /&gt; &lt;BR /&gt; //Clear channel interrupt flag(CHF)&lt;BR /&gt; FTM1_C0SC &amp;amp;= ~0x80;&lt;BR /&gt; &lt;BR /&gt; pulseWidth = stopPulse - startPulse;&lt;BR /&gt; &lt;BR /&gt; if(pulseWidth&amp;gt; 1)&lt;BR /&gt; {&lt;BR /&gt;&amp;nbsp; fnDebugDec(pulseWidth++, 0);&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt; }&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;void setupFTM1()&lt;BR /&gt;{&lt;BR /&gt; SIM_SCGC6 |= SIM_SCGC6_FTM1; /* Enable clock for FTM2 */&lt;BR /&gt; &lt;BR /&gt; //Enable the counter&lt;BR /&gt; FTM1_MODE |= FTM_MODE_FTMEN;&lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; //Enable the counter to run in the BDM mode&lt;BR /&gt; FTM1_CONF |= FTM_CONF_BDMMODE_3;&lt;BR /&gt; &lt;BR /&gt; //Load the module register and counter initial value&lt;BR /&gt; FTM1_MODE = 4095;&lt;BR /&gt; &lt;BR /&gt; FTM1_CNTIN = 0;&lt;BR /&gt; &lt;BR /&gt; //Configure FTM for quadrature mode&lt;BR /&gt; FTM1_C0SC |= FTM_CSC_ELSA;&lt;BR /&gt; &lt;BR /&gt; //Start the timer clock, source is the external clock&lt;BR /&gt; FTM1_SC |= FTM_SC_CLKS_EXT;&lt;BR /&gt; &lt;BR /&gt; PORTA_PCR8 = PORT_MUX_ALT6; // FTM1 CH0&lt;BR /&gt; PORTA_PCR9 = PORT_MUX_ALT6; // FTM1 CH1&lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; fnDebugDec(FTM1_C0SC, 0);&lt;/P&gt;&lt;P&gt; &lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;extern void fnMyTestTask(TTASKTABLE *ptrTaskTable)&lt;BR /&gt;{&lt;BR /&gt; &lt;/P&gt;&lt;P&gt; setupFTM1();&lt;BR /&gt; fnConfigure_Timer();&lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am using Codewarrior and as operating system i have uTasker&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 14 Mar 2013 13:25:34 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Flextimer-on-K60-capture-rising-edge/m-p/286024#M11026</guid>
      <dc:creator>Futte</dc:creator>
      <dc:date>2013-03-14T13:25:34Z</dc:date>
    </item>
    <item>
      <title>Re: Flextimer on K60, capture rising edge</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Flextimer-on-K60-capture-rising-edge/m-p/286025#M11027</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;parhapse you confuse FTM1_MODE = 4095; with Modulo FTM1_MOD - modulo?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The Modulo register contains the modulo value for the FTM counter.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Why do you need quadrature mode if you just want to capture rising edges?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;//Configure FTM for quadrature mode&lt;/P&gt;&lt;P&gt;FTM1_C0SC |= FTM_CSC_ELSA;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;And as for the ISR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I guess you don't need to do so many calculations in ISR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FMT1_CNT = 0; - reset counter&lt;/P&gt;&lt;P&gt;FMT1_CnSC.CHF = 0; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if(FMT1_SC.TOF)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ----invalid value, try again...&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;else&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; short FtmResult = CnV.VAL; // that is your valid result.&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 14 Mar 2013 14:00:00 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Flextimer-on-K60-capture-rising-edge/m-p/286025#M11027</guid>
      <dc:creator>SergeMaslenniko</dc:creator>
      <dc:date>2013-03-14T14:00:00Z</dc:date>
    </item>
    <item>
      <title>Re: Flextimer on K60, capture rising edge</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Flextimer-on-K60-capture-rising-edge/m-p/286026#M11028</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;So i dont need to configure this FTM1_MODE = 4095?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 14 Mar 2013 14:08:40 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Flextimer-on-K60-capture-rising-edge/m-p/286026#M11028</guid>
      <dc:creator>Futte</dc:creator>
      <dc:date>2013-03-14T14:08:40Z</dc:date>
    </item>
    <item>
      <title>Re: Flextimer on K60, capture rising edge</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Flextimer-on-K60-capture-rising-edge/m-p/286027#M11029</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;you need to configure FTM1_MOD with max value of the counter.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if 4096 is max value of your counter&amp;nbsp; FTM1_&lt;STRONG&gt;MOD&lt;/STRONG&gt; = 4095&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;and FTM1_MODE you can configure in accordance with your task.&lt;/P&gt;&lt;P&gt;at least you did something like that: FTM1_&lt;STRONG&gt;MODE&lt;/STRONG&gt; |= FTM_MODE_FTMEN;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 14 Mar 2013 14:40:02 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Flextimer-on-K60-capture-rising-edge/m-p/286027#M11029</guid>
      <dc:creator>SergeMaslenniko</dc:creator>
      <dc:date>2013-03-14T14:40:02Z</dc:date>
    </item>
    <item>
      <title>Re: Flextimer on K60, capture rising edge</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Flextimer-on-K60-capture-rising-edge/m-p/286028#M11030</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have maket the changes according to what you are writing but i newer capture anything:&lt;/P&gt;&lt;P&gt;void setupFTM1()&lt;BR /&gt;{&lt;BR /&gt; SIM_SCGC6 |= SIM_SCGC6_FTM1; /* Enable clock for FTM2 */&lt;BR /&gt; &lt;BR /&gt; //Enable the counter&lt;BR /&gt; FTM1_MODE |= FTM_MODE_FTMEN;&lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; //Enable the counter to run in the BDM mode&lt;BR /&gt; FTM1_CONF |= FTM_CONF_BDMMODE_3;&lt;BR /&gt; &lt;BR /&gt; //Load the module register and counter initial value&lt;BR /&gt;// FTM1_MODE = 4095;&lt;BR /&gt; &lt;BR /&gt; //Reset counter&lt;BR /&gt; FTM1_CNTIN = 0;&lt;BR /&gt; &lt;BR /&gt; //Configure FTM for quadrature mode&lt;BR /&gt; FTM1_C0SC |= FTM_CSC_ELSA;&lt;BR /&gt; FTM1_C0SC |= FTM_CSC_CHF;&lt;BR /&gt; &lt;BR /&gt; //Start the timer clock, source is the external clock&lt;BR /&gt; FTM1_SC |= FTM_SC_CLKS_EXT;&lt;BR /&gt; &lt;BR /&gt; PORTA_PCR8 = PORT_MUX_ALT6; // FTM1 CH0&lt;BR /&gt; PORTA_PCR9 = PORT_MUX_ALT6; // FTM1 CH1&lt;BR /&gt; fnDebugHex(PORT_MUX_ALT6, 8);&lt;BR /&gt; &lt;BR /&gt;if(FTM_SC_TOF )&lt;BR /&gt;{&lt;BR /&gt; fnDebugMsg("Invalid value");&lt;BR /&gt;}&lt;BR /&gt;else&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; short FtmResult = FTM1_C0V; // that is your valid result&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fnDebugDec(FtmResult, 0);&lt;BR /&gt;}&lt;BR /&gt; &lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;extern void fnMyTestTask(TTASKTABLE *ptrTaskTable)&lt;BR /&gt;{&lt;BR /&gt; char ir = 0;&lt;BR /&gt; fnPinConfiguration();&lt;BR /&gt; &lt;BR /&gt; fnDebugMsg("Timer start:");&lt;BR /&gt; &lt;BR /&gt; setupFTM1();&lt;/P&gt;&lt;P&gt;&lt;BR /&gt; &lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;its just writing out invalid value, even if i put a controller in front of it and try to capture the ir value :smileysad:&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 14 Mar 2013 14:40:46 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Flextimer-on-K60-capture-rising-edge/m-p/286028#M11030</guid>
      <dc:creator>Futte</dc:creator>
      <dc:date>2013-03-14T14:40:46Z</dc:date>
    </item>
    <item>
      <title>Re: Flextimer on K60, capture rising edge</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Flextimer-on-K60-capture-rising-edge/m-p/286029#M11031</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I change so i now have FTM1_&lt;STRONG&gt;MODE&lt;/STRONG&gt; |= FTM_MODE_FTMEN;&lt;/P&gt;&lt;P&gt;but nothing happens&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 14 Mar 2013 14:47:21 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Flextimer-on-K60-capture-rising-edge/m-p/286029#M11031</guid>
      <dc:creator>Futte</dc:creator>
      <dc:date>2013-03-14T14:47:21Z</dc:date>
    </item>
    <item>
      <title>Re: Flextimer on K60, capture rising edge</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Flextimer-on-K60-capture-rising-edge/m-p/286030#M11032</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;FTM1_C0SC |= FTM_CSC_CHF;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;CHF&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Channel Flag&lt;/P&gt;&lt;P&gt;Set by hardware when an event occurs on the channel. CHF is cleared by reading the CSC register while&lt;/P&gt;&lt;P&gt;CHnF is set and then writing a 0 to the CHF bit. &lt;STRONG&gt;Writing a 1 to CHF has no effect.&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;If another event occurs between the read and write operations, the write operation has no effect;&lt;/P&gt;&lt;P&gt;therefore, CHF remains set indicating an event has occurred. In this case a CHF interrupt request is not&lt;/P&gt;&lt;P&gt;lost due to the clearing sequence for a previous CHF.&lt;/P&gt;&lt;P&gt;0 No channel event has occurred.&lt;/P&gt;&lt;P&gt;1 A channel event has occurred.&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;STRONG&gt;As for FTMx_MOD&lt;/STRONG&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Read please those clauses of K60P144M100SF2RM.pdf, especially clause 39.4.3 "Counter".&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 14 Mar 2013 14:53:10 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Flextimer-on-K60-capture-rising-edge/m-p/286030#M11032</guid>
      <dc:creator>SergeMaslenniko</dc:creator>
      <dc:date>2013-03-14T14:53:10Z</dc:date>
    </item>
    <item>
      <title>Re: Flextimer on K60, capture rising edge</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Flextimer-on-K60-capture-rising-edge/m-p/286031#M11033</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Serge&lt;/P&gt;&lt;P&gt;I have tryit to read the paper and change my code:&lt;/P&gt;&lt;P&gt;void FlexTimerCaptureInitial()&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp; //Enable flextimer 0 clock&lt;/P&gt;&lt;P&gt;&amp;nbsp; SIM_SCGC6 |= SIM_SCGC6_FTM0; /* Enable clock for FTM0 */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; // PORTC_PCR6 |= PORT_MUX_ALT3;&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTC_PCR3 |= PA_18_FTM_CLKIN0;&amp;nbsp; // FTM0_CH2&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTC_PCR3 |= PA_19_FTM_CLKIN1;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; //enable the counter to run in the BDM mode&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM0_CONF |=FTM_CONF_BDMMODE_3;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM0_SC |= FTM_SC_CLKS_EXT;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM_CSC_ELSA;&lt;/P&gt;&lt;P&gt;&amp;nbsp; //FTM0_C0SC |= FTM_CSC_CHF;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; fnDebugDec(FTM_CSC_ELSA, 0);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM0_C0SC |= (0|FTM_CSC_ELSA | FTM_CSC_CHF);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;// fnDebugDec(FTM0_C0SC, 0);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM0_MODE |= FTM_MODE_FTMEN;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM0_SC |= FTM_SC_PS_1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM0_SC |= FTM_SC_PS_128;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; //Reset counter&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM0_CNT = 0; &lt;/P&gt;&lt;P&gt;&amp;nbsp; //FTM0_CSC_CHF&amp;nbsp; = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; if(FTM_SC_TOF)&lt;/P&gt;&lt;P&gt;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fnDebugMsg("Invalid value");&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; else&lt;/P&gt;&lt;P&gt;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fnDebugMsg("Its works");&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;i call the funktion from my task:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;extern void fnMyTestTask(TTASKTABLE *ptrTaskTable)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp; _CONFIG_PORT_INPUT(C, (PORTC_BIT6 | PORTC_BIT6), PORT_PS_UP_ENABLE);&lt;/P&gt;&lt;P&gt;&amp;nbsp; FlexTimerCaptureInitial();&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;but it seems that i newer detect any signal ? so the counter just writting&amp;nbsp; fnDebugMsg("Invalid value");&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 15 Mar 2013 11:23:36 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Flextimer-on-K60-capture-rising-edge/m-p/286031#M11033</guid>
      <dc:creator>Futte</dc:creator>
      <dc:date>2013-03-15T11:23:36Z</dc:date>
    </item>
    <item>
      <title>Re: Flextimer on K60, capture rising edge</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Flextimer-on-K60-capture-rising-edge/m-p/286032#M11034</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Serge&lt;/P&gt;&lt;P&gt;Finally o goth some result&lt;/P&gt;&lt;P&gt;The result you goth:&amp;nbsp; 00fc&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267&amp;nbsp; 0267 is that the time between rising edge ?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 22 Mar 2013 14:06:48 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Flextimer-on-K60-capture-rising-edge/m-p/286032#M11034</guid>
      <dc:creator>Futte</dc:creator>
      <dc:date>2013-03-22T14:06:48Z</dc:date>
    </item>
  </channel>
</rss>

