<?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: Dual edge capture with DMA in Kinetis Microcontrollers</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Dual-edge-capture-with-DMA/m-p/349319#M17138</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks you have right!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The RM recommends the clearing of flag&amp;nbsp; CH(n)F and CH(n+1)F ( looks the note of the figure in paragraph period measurement in FlexTimer chapter&amp;nbsp; ), but with DMA &lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;channel link mode or&lt;/SPAN&gt; &lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt; scatter-gather mode only CH(n+1)F is cleared. Is it correct? (&amp;nbsp; This would mean that you can not use DMA in dual edge capture mode).&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Have a nice day&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 02 Dec 2014 09:31:40 GMT</pubDate>
    <dc:creator>mauriziolenzini</dc:creator>
    <dc:date>2014-12-02T09:31:40Z</dc:date>
    <item>
      <title>Dual edge capture with DMA</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Dual-edge-capture-with-DMA/m-p/349315#M17134</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&amp;nbsp; I need to configure the timer in dual edge capture mode with DMA. My application measure the period&lt;/P&gt;&lt;P&gt;&amp;nbsp; ( with FTM0 CH4 in dual edge capture mode ) of square wave in input ( 1 us ) and transfers the result&lt;/P&gt;&lt;P&gt;&amp;nbsp; in ram buffer for post analysis. The DMA should transfer, every period, two bytes from FTM0_CnV ( channel 4,5 ) to the RAM buffer&lt;/P&gt;&lt;P&gt;&amp;nbsp; ( wuwFTM0Cs4_buffer and wuwFTM0Cs5_buffer ). The data moved form FTM0_C4V to the RAM buffer are always zero. The DMA&amp;nbsp; associated at FTM0_C5V doesn't move.&lt;/P&gt;&lt;P&gt;&amp;nbsp; DMA seems doesn't move FTM0_CnV value correctly. Anyone have an idea?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; The follow code without the DMA its works correctly.&lt;/P&gt;&lt;P&gt;&amp;nbsp; This is my code:&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;&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;&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; |&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;/P&gt;&lt;P&gt;&amp;nbsp; Square wave |&amp;nbsp; |_|&amp;nbsp; |_|&amp;nbsp; |_&amp;nbsp; ----------&amp;gt; | FTM0_CH4&amp;nbsp; K70 (150 MHz)&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;&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;&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; |&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;&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;&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; |&lt;/P&gt;&lt;P&gt;&amp;nbsp; period 1 us&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;typedef unsigned short int&amp;nbsp;&amp;nbsp;&amp;nbsp; UWORD;&amp;nbsp; /* 16 bits */&lt;/P&gt;&lt;P&gt;typedef unsigned long int&amp;nbsp;&amp;nbsp; ULONG;&amp;nbsp; /* 32 bits */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#define ELEMENTS_FTM0&amp;nbsp; ( 16 )&lt;/P&gt;&lt;P&gt;#define DMA_CH9&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; ( 9 )&lt;/P&gt;&lt;P&gt;#define DMA_CH9_MUX&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ( 9 )&lt;/P&gt;&lt;P&gt;#define DMA_CH10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ( 10 )&lt;/P&gt;&lt;P&gt;#define DMA_CH10_MUX&amp;nbsp;&amp;nbsp; ( 10 )&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;static UWORD wuwFTM0Cs4_buffer[ ELEMENTS_FTM0 ]; /* circular buffer: the DMA fills this array */&lt;/P&gt;&lt;P&gt;static UWORD wuwFTM0Cs5_buffer[ ELEMENTS_FTM0 ];&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void vDualEdgeCaptureTimerDMA( void )&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTA_PCR7&amp;nbsp; =&amp;nbsp; PORT_PCR_MUX(3); /* FTM0_CH4 input&amp;nbsp;&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp; GPIOA_PDDR&amp;nbsp; =&amp;nbsp; 0;&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;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; //////////////////// DMA CHANNEL 9 get data from FTM0_C4V ( first edge )//////////////////////////////////////////////////&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* clear flag */&lt;/P&gt;&lt;P&gt;&amp;nbsp; DMAMUX0_CHCFG(DMA_CH9_MUX) &amp;amp;= ~( DMAMUX_CHCFG_ENBL_MASK | DMAMUX_CHCFG_TRIG_MASK );&lt;/P&gt;&lt;P&gt;&amp;nbsp; DMAMUX0_CHCFG(DMA_CH9_MUX) |= DMAMUX_CHCFG_SOURCE( 28 );&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* FTM0_C4V trigger event */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* enable DMA channel&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp; DMAMUX0_CHCFG(DMA_CH9_MUX) |= DMAMUX_CHCFG_ENBL_MASK;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* DMA section */&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; DMA_CERQ&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; = DMA_CERQ_CERQ(DMA_CH9);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* clear enable request&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; DMA_SADDR(DMA_CH9)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = (ULONG) (&amp;amp;FTM0_C4V);&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; /* Source address, to be advanced by 0 bytes after one word.&amp;nbsp;&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp; DMA_DADDR(DMA_CH9)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = (ULONG) (&amp;amp;wuwFTM0Cs4_buffer[ 0 ]); /* Destination address&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; DMA_SLAST(DMA_CH9)&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; = (ULONG)( ((ULONG)-1) * 0);&lt;/P&gt;&lt;P&gt;&amp;nbsp; DMA_DLAST_SGA(DMA_CH9)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = (ULONG)( ((ULONG)-1) * (ELEMENTS_FTM0 * 2)); &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; DMA_ATTR(DMA_CH9)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = DMA_ATTR_SSIZE(1) |&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; /* sixteen bit moved */&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;&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;&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; DMA_ATTR_DSIZE(1);&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; /* sixteen bit moved */&lt;/P&gt;&lt;P&gt;&amp;nbsp; DMA_DOFF(DMA_CH9)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 2;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* source advance TWO byte per write&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp; DMA_SOFF(DMA_CH9)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* source advance zero byte per write&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; DMA_CITER_ELINKNO(DMA_CH9) = ELEMENTS_FTM0;&lt;/P&gt;&lt;P&gt;&amp;nbsp; DMA_BITER_ELINKNO(DMA_CH9) = ELEMENTS_FTM0;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; DMA_CSR(DMA_CH9)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; DMA_NBYTES_MLOFFNO(DMA_CH9) = DMA_NBYTES_MLOFFNO_SMLOE_MASK | 2; /* Number of bytes per minor loop:&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; DMA_SERQ&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; = DMA_SERQ_SERQ(DMA_CH9);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Transmitter and receiver enable */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; //////////////////// DMA CHANNEL 10 get data from FTM0_C5V ( second edge )//////////////////////////////////////////////////&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* clear flag */&lt;/P&gt;&lt;P&gt;&amp;nbsp; DMAMUX0_CHCFG(DMA_CH10_MUX) &amp;amp;= ~( DMAMUX_CHCFG_ENBL_MASK | DMAMUX_CHCFG_TRIG_MASK );&lt;/P&gt;&lt;P&gt;&amp;nbsp; DMAMUX0_CHCFG(DMA_CH10_MUX) |= DMAMUX_CHCFG_SOURCE( 29 );&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* FTM0_C5V trigger */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* enable DMA channel&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp; DMAMUX0_CHCFG(DMA_CH10_MUX) |= DMAMUX_CHCFG_ENBL_MASK;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* DMA section */&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; DMA_CERQ&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; = DMA_CERQ_CERQ(DMA_CH10);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* clear enable request&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; DMA_SADDR(DMA_CH10)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = (ULONG) (&amp;amp;FTM0_C5V);&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; /* Source address */&lt;/P&gt;&lt;P&gt;&amp;nbsp; DMA_DADDR(DMA_CH10)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = (ULONG) (&amp;amp;wuwFTM0Cs5_buffer[ 0 ]); /* Destination address&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; DMA_SLAST(DMA_CH10)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = (ULONG)( ((ULONG)-1) * 0);&lt;/P&gt;&lt;P&gt;&amp;nbsp; DMA_DLAST_SGA(DMA_CH10)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = (ULONG)( ((ULONG)-1) * (ELEMENTS_FTM0 * 2));&amp;nbsp;&amp;nbsp; /* for a one-off transfer, we don't care about the DEST pointer afterwards.&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; DMA_ATTR(DMA_CH10)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = DMA_ATTR_SSIZE(1) |&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;&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;&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; DMA_ATTR_DSIZE(1);&lt;/P&gt;&lt;P&gt;&amp;nbsp; DMA_DOFF(DMA_CH10)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 2;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* source advance two byte per write&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp; DMA_SOFF(DMA_CH10)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* source advance zero byte per write&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; DMA_CITER_ELINKNO(DMA_CH10) = ELEMENTS_FTM0;&lt;/P&gt;&lt;P&gt;&amp;nbsp; DMA_BITER_ELINKNO(DMA_CH10) = ELEMENTS_FTM0;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; DMA_CSR(DMA_CH10)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; DMA_NBYTES_MLOFFNO(DMA_CH10)&amp;nbsp; = DMA_NBYTES_MLOFFNO_SMLOE_MASK | 2; /* Number of bytes per minor loop:&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; DMA_SERQ&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; = DMA_SERQ_SERQ(DMA_CH10);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* set enable request */&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_MASK;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM0_FMS |= FTM_FMS_WPEN_MASK;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* FTM0_MODE[WPDIS] = 1; */&lt;/P&gt;&lt;P&gt;&amp;nbsp; if (( FTM0_FMS &amp;amp; FTM_FMS_WPEN_MASK ) == FTM_FMS_WPEN_MASK )&lt;/P&gt;&lt;P&gt;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Disable Write Protection - enables changes to QUADEN, DECAPEN, etc.&amp;nbsp;&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FTM0_MODE |= FTM_MODE_WPDIS_MASK;&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; vFatalError( ERR_TIMER_NOT_READY, NO_SECONDARY_CODE );&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;&amp;nbsp; FTM0_CNT = 0x0; /* FTM Counter Value - reset counter to zero */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; /**/&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM0_MOD&amp;nbsp; = 0xFFFF;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* Status and Control bits */&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM0_SC =&amp;nbsp; FTM_SC_CLKS(1); /* Selects Clock source */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* sets pre-scale value see details below */&lt;/P&gt;&lt;P&gt;&amp;nbsp; /******begin FTM_SC_PS details ****************************&lt;/P&gt;&lt;P&gt;&amp;nbsp; * Sets the Prescale value for the Flex Timer Module which divides the&lt;/P&gt;&lt;P&gt;&amp;nbsp; * Peripheral bus clock -&amp;gt; 48Mhz by the set amount&lt;/P&gt;&lt;P&gt;&amp;nbsp; * Peripheral bus clock set up in clock.h&lt;/P&gt;&lt;P&gt;&amp;nbsp; *&lt;/P&gt;&lt;P&gt;&amp;nbsp; * The value of the prescaler is selected by the PS[2:0] bits.&lt;/P&gt;&lt;P&gt;&amp;nbsp; * (FTMx_SC field bits 0-2 are Prescale bits -&amp;nbsp; set above in FTM_SC Setting)&lt;/P&gt;&lt;P&gt;&amp;nbsp; *&lt;/P&gt;&lt;P&gt;&amp;nbsp; *&amp;nbsp; 000 - 0 - No divide&lt;/P&gt;&lt;P&gt;&amp;nbsp; *&amp;nbsp; 001 - 1 - Divide by 2&lt;/P&gt;&lt;P&gt;&amp;nbsp; *&amp;nbsp; 010 - 2 - Divide by 4&lt;/P&gt;&lt;P&gt;&amp;nbsp; *&amp;nbsp; 011 - 3 - Divide by 8&lt;/P&gt;&lt;P&gt;&amp;nbsp; *&amp;nbsp; 100 - 4 - Divide by 16&lt;/P&gt;&lt;P&gt;&amp;nbsp; *&amp;nbsp; 101 - 5 - Divide by 32&lt;/P&gt;&lt;P&gt;&amp;nbsp; *&amp;nbsp; 110 - 6 - Divide by 64 -&lt;/P&gt;&lt;P&gt;&amp;nbsp; *&amp;nbsp; 111 - 7 - Divide by 128&lt;/P&gt;&lt;P&gt;&amp;nbsp; *&amp;nbsp; ******end FTM_SC_PS details*****************************/&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM0_SC |= FTM_SC_PS(0);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* FTM1_MOD = (PERIPHERAL_BUS_CLOCK/(1&amp;lt;&amp;lt;FTM0_CLK_PRESCALE))/FTM0_OVERFLOW_FREQUENCY ; */ /* Set the overflow rate */&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM0_CNTIN = 0; /* Set the Counter Initial Value to 0*/&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* */&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM0_MODE |= FTM_MODE_FTMEN_MASK;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* FTMx_CnSC*/&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* input capture seting&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM0_C4SC&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;= ~FTM_CnSC_ELSB_MASK;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* rising Edge */&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM0_C4SC&amp;nbsp;&amp;nbsp;&amp;nbsp; |= FTM_CnSC_ELSA_MASK;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* rising Edge */&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM0_C4SC&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;= ~FTM_CnSC_MSB_MASK;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Channel Mode select */&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM0_C4SC&amp;nbsp;&amp;nbsp;&amp;nbsp; |= FTM_CnSC_MSA_MASK;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Channel Mode select */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM0_C5SC&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;= ~FTM_CnSC_ELSB_MASK;&amp;nbsp;&amp;nbsp; /* rising Edge */&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM0_C5SC&amp;nbsp;&amp;nbsp;&amp;nbsp; |= FTM_CnSC_ELSA_MASK;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* rising Edge */&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM0_C5SC&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;= ~FTM_CnSC_MSB_MASK;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Channel Mode select */&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM0_C5SC&amp;nbsp;&amp;nbsp;&amp;nbsp; |= FTM_CnSC_MSA_MASK;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Channel Mode select */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM0_SC&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;= ~FTM_SC_CPWMS_MASK;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* no pwm */&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM0_COMBINE |= FTM_COMBINE_DECAPEN2_MASK; /* */&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM0_COMBINE |= FTM_COMBINE_DECAP2_MASK;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM0_C4SC&amp;nbsp;&amp;nbsp;&amp;nbsp; |= FTM_CnSC_DMA_MASK;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* DMA support */&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM0_C5SC&amp;nbsp;&amp;nbsp;&amp;nbsp; |= FTM_CnSC_DMA_MASK;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* DMA support */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM0_C4SC&amp;nbsp;&amp;nbsp;&amp;nbsp; |= FTM_CnSC_CHIE_MASK;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* IE enabled for DMA&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM0_C5SC&amp;nbsp;&amp;nbsp;&amp;nbsp; |= FTM_CnSC_CHIE_MASK;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* IE enabled for DMA&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; /*&amp;nbsp; Interrupts */&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM0_FMS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;= ~FTM_FMS_WPEN_MASK;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 18 Nov 2014 10:22:20 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Dual-edge-capture-with-DMA/m-p/349315#M17134</guid>
      <dc:creator>mauriziolenzini</dc:creator>
      <dc:date>2014-11-18T10:22:20Z</dc:date>
    </item>
    <item>
      <title>Re: Dual edge capture with DMA</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Dual-edge-capture-with-DMA/m-p/349316#M17135</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am sorry , but a little bit confused. Seems just square wave input to FTM0_CH4, no signal input to FTM0_CH5, so what is the purpose for DMA channel 10? in my understanding, if FTM0_CH4 is configured as input capture on rising or falling edge, the DMA should all be triggered by FTM0_CH4. Would you please kindly help to clarify?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for your patience!&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&lt;BR /&gt;Kan&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 21 Nov 2014 08:57:20 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Dual-edge-capture-with-DMA/m-p/349316#M17135</guid>
      <dc:creator>Kan_Li</dc:creator>
      <dc:date>2014-11-21T08:57:20Z</dc:date>
    </item>
    <item>
      <title>Re: Dual edge capture with DMA</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Dual-edge-capture-with-DMA/m-p/349317#M17136</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks Mr Kan_Li&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;I apologize to you, but my english is bad.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;I use the FTM0 in dual edge capture mode ( period measurement ). FTM0_CH4 ( PORTA ) is the input of square wave. If you want measure the period you need the C(n)V register for first edge and C(n+1)V for the second edge ( the difference is the period of the square wave ). I need two DMA because I want to move two data: the C(n)V register and C(n+1)V register. In my application C(n)V is&amp;nbsp; &lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;FTM0_C4V and C(n+1)V is &lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;FTM0_C5V.&amp;nbsp; DMA channel 9 move the &lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;FTM0_C4V data into RAM buffer and DMA channel 10 move &lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;FTM0_C5V data into a RAM buffer. &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Is it correct this reasoning?&lt;/P&gt;&lt;P&gt;best regards&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 21 Nov 2014 11:46:20 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Dual-edge-capture-with-DMA/m-p/349317#M17136</guid>
      <dc:creator>mauriziolenzini</dc:creator>
      <dc:date>2014-11-21T11:46:20Z</dc:date>
    </item>
    <item>
      <title>Re: Re: Dual edge capture with DMA</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Dual-edge-capture-with-DMA/m-p/349318#M17137</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks for the information! I think I found the cause. Seems you want to use Dual Edge Capture mode, but looks like channel 4 and channel 5 are both configured as rising edge,&lt;/P&gt;&lt;P&gt;/* input capture seting&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt; FTM0_C4SC&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;= ~FTM_CnSC_ELSB_MASK;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* rising Edge */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;&amp;nbsp; FTM0_C4SC&amp;nbsp;&amp;nbsp;&amp;nbsp; |= FTM_CnSC_ELSA_MASK;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* rising Edge */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM0_C4SC&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;= ~FTM_CnSC_MSB_MASK;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Channel Mode select */&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM0_C4SC&amp;nbsp;&amp;nbsp;&amp;nbsp; |= FTM_CnSC_MSA_MASK;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Channel Mode select */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;SPAN style="color: #ff0000;"&gt;FTM0_C5SC&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;= ~FTM_CnSC_ELSB_MASK;&amp;nbsp; /* rising Edge */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;&amp;nbsp; FTM0_C5SC&amp;nbsp;&amp;nbsp;&amp;nbsp; |= FTM_CnSC_ELSA_MASK;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* rising Edge */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM0_C5SC&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;= ~FTM_CnSC_MSB_MASK;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Channel Mode select */&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM0_C5SC&amp;nbsp;&amp;nbsp;&amp;nbsp; |= FTM_CnSC_MSA_MASK;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Channel Mode select */&lt;/P&gt;&lt;P&gt;and RM also says "When the CH(n+1)F bit is set, both edges were captured and the captured values are ready for reading in the C(n)V and C(n+1)V registers." so when CH(n)F to trigger DMA, C(n)V is not ready yet. so you just need one DMA channel to mode C(n)V and C(n+1)V, by scatter-gather mode, or use channel link to move C(n)V and C(n+1)V when CH(n+1)F is set.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope that helps,&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&lt;BR /&gt;Kan&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 24 Nov 2014 04:01:56 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Dual-edge-capture-with-DMA/m-p/349318#M17137</guid>
      <dc:creator>Kan_Li</dc:creator>
      <dc:date>2014-11-24T04:01:56Z</dc:date>
    </item>
    <item>
      <title>Re: Dual edge capture with DMA</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Dual-edge-capture-with-DMA/m-p/349319#M17138</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks you have right!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The RM recommends the clearing of flag&amp;nbsp; CH(n)F and CH(n+1)F ( looks the note of the figure in paragraph period measurement in FlexTimer chapter&amp;nbsp; ), but with DMA &lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;channel link mode or&lt;/SPAN&gt; &lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt; scatter-gather mode only CH(n+1)F is cleared. Is it correct? (&amp;nbsp; This would mean that you can not use DMA in dual edge capture mode).&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Have a nice day&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 02 Dec 2014 09:31:40 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Dual-edge-capture-with-DMA/m-p/349319#M17138</guid>
      <dc:creator>mauriziolenzini</dc:creator>
      <dc:date>2014-12-02T09:31:40Z</dc:date>
    </item>
    <item>
      <title>Re: Dual edge capture with DMA</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Dual-edge-capture-with-DMA/m-p/349320#M17139</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;In Continuous Capture mode of Dual edge capture, it is possible to clear only the CH(n+1)F bit.&amp;nbsp; Therefore, when the CH(n+1)F bit is set again, the latest captured values are available in C(n)V and C(n+1)V registers. Please kindly refer to 40.4.24.2 Continuous Capture mode for more details.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&lt;BR /&gt;Kan&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 03 Dec 2014 07:57:05 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Dual-edge-capture-with-DMA/m-p/349320#M17139</guid>
      <dc:creator>Kan_Li</dc:creator>
      <dc:date>2014-12-03T07:57:05Z</dc:date>
    </item>
    <item>
      <title>Re: Dual edge capture with DMA</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Dual-edge-capture-with-DMA/m-p/349321#M17140</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Are you solve it?I have same problem！&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 19 Oct 2018 10:01:42 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Dual-edge-capture-with-DMA/m-p/349321#M17140</guid>
      <dc:creator>tianyunfang</dc:creator>
      <dc:date>2018-10-19T10:01:42Z</dc:date>
    </item>
  </channel>
</rss>

