<?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>Kinetis Software Development Kit中的主题 Re: Using FTM_SetupInputCapture</title>
    <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Using-FTM-SetupInputCapture/m-p/487621#M4322</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Jake,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Just as reference, here is the full example:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="c++" __jive_macro_name="code" class="jive_macro_code jive_text_macro _jivemacro_uid_14604706508416039" data-renderedposition="112_8_1192_1008" jivemacro_uid="_14604706508416039" modifiedtitle="true"&gt;&lt;P&gt;/*******************************************************************************&lt;/P&gt;&lt;P&gt; * Definitions&lt;/P&gt;&lt;P&gt; ******************************************************************************/&lt;/P&gt;&lt;P&gt;#define BOARD_FTM_BASEADDR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FTM2&lt;/P&gt;&lt;P&gt;#define BOARD_FIRST_FTM_CHANNEL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0U&lt;/P&gt;&lt;P&gt;#define BOARD_SECOND_FTM_CHANNEL&amp;nbsp;&amp;nbsp;&amp;nbsp; 1U&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/* Get source clock for FTM driver */&lt;/P&gt;&lt;P&gt;#define FTM_SOURCE_CLOCK&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CLOCK_GetFreq(kCLOCK_BusClk)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#define FTM_READ_INPUT_CAPTURE&amp;nbsp; BOARD_FTM_BASEADDR-&amp;gt;CONTROLS[BOARD_FIRST_FTM_CHANNEL].CnV&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/*******************************************************************************&lt;/P&gt;&lt;P&gt; * Prototypes&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; * Variables&lt;/P&gt;&lt;P&gt; ******************************************************************************/&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/*******************************************************************************&lt;/P&gt;&lt;P&gt; * Code&lt;/P&gt;&lt;P&gt; ******************************************************************************/&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/*!&lt;/P&gt;&lt;P&gt; * @brief Main function&lt;/P&gt;&lt;P&gt; */&lt;/P&gt;&lt;P&gt;int main(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ftm_config_t ftmInfo;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32_t status = 0;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Board pin, clock, debug console init */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; BOARD_InitPins();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; BOARD_BootClockRUN();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; BOARD_InitDebugConsole();&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Print a note to terminal */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PRINTF("\r\nFTM input capture example\r\n");&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FTM_GetDefaultConfig(&amp;amp;ftmInfo);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Initialize FTM module */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FTM_Init(BOARD_FTM_BASEADDR, &amp;amp;ftmInfo);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PRINTF("FTM value: \r\n");&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FTM_SetupInputCapture(BOARD_FTM_BASEADDR, BOARD_FIRST_FTM_CHANNEL, kFTM_RisingEdge, 0);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; BOARD_FTM_BASEADDR-&amp;gt;MOD = 0xFFFF;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FTM_StartTimer(BOARD_FTM_BASEADDR, kFTM_SystemClock);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (1)&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; if (FTM_READ_INPUT_CAPTURE &amp;gt;= 20000) {&lt;/P&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; PRINTF("%d\r\n",FTM_READ_INPUT_CAPTURE);&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; status = FTM_GetStatusFlags(BOARD_FTM_BASEADDR);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (status &amp;amp; kFTM_TimeOverflowFlag) {&lt;/P&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; FTM_ClearStatusFlags(BOARD_FTM_BASEADDR, status);&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;&amp;nbsp;&amp;nbsp;&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;&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;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope this helps!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Isaac&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 12 Apr 2016 14:18:20 GMT</pubDate>
    <dc:creator>isaacavila</dc:creator>
    <dc:date>2016-04-12T14:18:20Z</dc:date>
    <item>
      <title>Using FTM_SetupInputCapture</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Using-FTM-SetupInputCapture/m-p/487618#M4319</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Everyone,&lt;/P&gt;&lt;P&gt;Im new to using Kinetis microcontrollers and I have a TWR-K65F180M board that I'm trying to use to capture inputs from an encoder.&amp;nbsp; I am working off of the PWM_twochannel driver example using SDK2.0. I have the FTM set up to use FTM2_CH0.&amp;nbsp; The api document says that every time a rising edge is captured the counter value should be stored in the CnV register.&amp;nbsp; However, unable to read any values in the CnV registers using the EmbSysRegView.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks for any help!&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="145529_145529.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/121350iF4F4B25E99724644/image-size/large?v=v2&amp;amp;px=999" role="button" title="145529_145529.png" alt="145529_145529.png" /&gt;&lt;/span&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_2.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/30705iB157B202ED3B919D/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_2.png" alt="pastedImage_2.png" /&gt;&lt;/span&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="145530_145530.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/121351i8E42C85ADEABADAE/image-size/large?v=v2&amp;amp;px=999" role="button" title="145530_145530.png" alt="145530_145530.png" /&gt;&lt;/span&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_3.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/30773i5E5DD122EE9CCBDC/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_3.png" alt="pastedImage_3.png" /&gt;&lt;/span&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="145531_145531.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/121352iE9E4AB5BBE38F505/image-size/large?v=v2&amp;amp;px=999" role="button" title="145531_145531.png" alt="145531_145531.png" /&gt;&lt;/span&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_4.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/30786i679FCC2E1F90056D/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_4.png" alt="pastedImage_4.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 07 Apr 2016 13:53:47 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Using-FTM-SetupInputCapture/m-p/487618#M4319</guid>
      <dc:creator>henninjw</dc:creator>
      <dc:date>2016-04-07T13:53:47Z</dc:date>
    </item>
    <item>
      <title>Re: Using FTM_SetupInputCapture</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Using-FTM-SetupInputCapture/m-p/487619#M4320</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Jake,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Sorry for late response. For input capture mode, you will need to set 0xFFFF to MOD register in order to use counter in free-running mode. Program should look like as follows:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="c++" __jive_macro_name="code" class="_jivemacro_uid_14604219554663858 jive_macro_code jive_text_macro" data-renderedposition="112_8_1192_16" jivemacro_uid="_14604219554663858" modifiedtitle="true"&gt;&lt;P&gt;#define FTM_READ_INPUT_CAPTURE&amp;nbsp; BOARD_FTM_BASEADDR-&amp;gt;CONTROLS[BOARD_FIRST_FTM_CHANNEL].CnV&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="c++" __jive_macro_name="code" class="_jivemacro_uid_14604217034914201 jive_macro_code jive_text_macro" data-renderedposition="180_8_1192_624" jivemacro_uid="_14604217034914201" modifiedtitle="true"&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ftm_config_t ftmInfo;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32_t status = 0;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Board pin, clock, debug console init */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; BOARD_InitPins();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; BOARD_BootClockRUN();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; BOARD_InitDebugConsole();&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Print a note to terminal */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PRINTF("\r\nFTM input capture example\r\n");&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FTM_GetDefaultConfig(&amp;amp;ftmInfo);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Initialize FTM module */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FTM_Init(BOARD_FTM_BASEADDR, &amp;amp;ftmInfo);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PRINTF("FTM value: \r\n");&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FTM_SetupInputCapture(BOARD_FTM_BASEADDR, BOARD_FIRST_FTM_CHANNEL, kFTM_RisingEdge, 0);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; BOARD_FTM_BASEADDR-&amp;gt;MOD = 0xFFFF;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FTM_StartTimer(BOARD_FTM_BASEADDR, kFTM_SystemClock);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (1)&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; if (FTM_READ_INPUT_CAPTURE &amp;gt;= 20000) {&lt;/P&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; PRINTF("%d\r\n",FTM_READ_INPUT_CAPTURE);&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; status = FTM_GetStatusFlags(BOARD_FTM_BASEADDR);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (status &amp;amp; kFTM_TimeOverflowFlag) {&lt;/P&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; FTM_ClearStatusFlags(BOARD_FTM_BASEADDR, status);&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;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&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;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you try this code, you will be able to print on screen counter value.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I hope this can help you!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Isaac&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 12 Apr 2016 00:43:36 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Using-FTM-SetupInputCapture/m-p/487619#M4320</guid>
      <dc:creator>isaacavila</dc:creator>
      <dc:date>2016-04-12T00:43:36Z</dc:date>
    </item>
    <item>
      <title>Re: Using FTM_SetupInputCapture</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Using-FTM-SetupInputCapture/m-p/487620#M4321</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Isaac,&lt;/P&gt;&lt;P&gt;Thanks for the help.&amp;nbsp; I am still having some issues with the BOARD_FIRST_FTM_CHANNEL. Just to clarify I need to define BOARD_FIRST_FTM_CHANNEL as kFTM_Chnl_0 and BOARD_FTM_BASEADDR as FTM2 to capture input from FTM2_CH0 that will measure the time between riding edges and print this to the screen.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks again &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 12 Apr 2016 13:54:00 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Using-FTM-SetupInputCapture/m-p/487620#M4321</guid>
      <dc:creator>henninjw</dc:creator>
      <dc:date>2016-04-12T13:54:00Z</dc:date>
    </item>
    <item>
      <title>Re: Using FTM_SetupInputCapture</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Using-FTM-SetupInputCapture/m-p/487621#M4322</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Jake,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Just as reference, here is the full example:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="c++" __jive_macro_name="code" class="jive_macro_code jive_text_macro _jivemacro_uid_14604706508416039" data-renderedposition="112_8_1192_1008" jivemacro_uid="_14604706508416039" modifiedtitle="true"&gt;&lt;P&gt;/*******************************************************************************&lt;/P&gt;&lt;P&gt; * Definitions&lt;/P&gt;&lt;P&gt; ******************************************************************************/&lt;/P&gt;&lt;P&gt;#define BOARD_FTM_BASEADDR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FTM2&lt;/P&gt;&lt;P&gt;#define BOARD_FIRST_FTM_CHANNEL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0U&lt;/P&gt;&lt;P&gt;#define BOARD_SECOND_FTM_CHANNEL&amp;nbsp;&amp;nbsp;&amp;nbsp; 1U&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/* Get source clock for FTM driver */&lt;/P&gt;&lt;P&gt;#define FTM_SOURCE_CLOCK&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CLOCK_GetFreq(kCLOCK_BusClk)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#define FTM_READ_INPUT_CAPTURE&amp;nbsp; BOARD_FTM_BASEADDR-&amp;gt;CONTROLS[BOARD_FIRST_FTM_CHANNEL].CnV&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/*******************************************************************************&lt;/P&gt;&lt;P&gt; * Prototypes&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; * Variables&lt;/P&gt;&lt;P&gt; ******************************************************************************/&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/*******************************************************************************&lt;/P&gt;&lt;P&gt; * Code&lt;/P&gt;&lt;P&gt; ******************************************************************************/&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/*!&lt;/P&gt;&lt;P&gt; * @brief Main function&lt;/P&gt;&lt;P&gt; */&lt;/P&gt;&lt;P&gt;int main(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ftm_config_t ftmInfo;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32_t status = 0;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Board pin, clock, debug console init */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; BOARD_InitPins();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; BOARD_BootClockRUN();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; BOARD_InitDebugConsole();&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Print a note to terminal */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PRINTF("\r\nFTM input capture example\r\n");&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FTM_GetDefaultConfig(&amp;amp;ftmInfo);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Initialize FTM module */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FTM_Init(BOARD_FTM_BASEADDR, &amp;amp;ftmInfo);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PRINTF("FTM value: \r\n");&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FTM_SetupInputCapture(BOARD_FTM_BASEADDR, BOARD_FIRST_FTM_CHANNEL, kFTM_RisingEdge, 0);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; BOARD_FTM_BASEADDR-&amp;gt;MOD = 0xFFFF;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FTM_StartTimer(BOARD_FTM_BASEADDR, kFTM_SystemClock);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (1)&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; if (FTM_READ_INPUT_CAPTURE &amp;gt;= 20000) {&lt;/P&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; PRINTF("%d\r\n",FTM_READ_INPUT_CAPTURE);&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; status = FTM_GetStatusFlags(BOARD_FTM_BASEADDR);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (status &amp;amp; kFTM_TimeOverflowFlag) {&lt;/P&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; FTM_ClearStatusFlags(BOARD_FTM_BASEADDR, status);&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;&amp;nbsp;&amp;nbsp;&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;&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;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope this helps!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Isaac&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 12 Apr 2016 14:18:20 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Using-FTM-SetupInputCapture/m-p/487621#M4322</guid>
      <dc:creator>isaacavila</dc:creator>
      <dc:date>2016-04-12T14:18:20Z</dc:date>
    </item>
  </channel>
</rss>

