<?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 Bug in FTM_SetupDualEdgeCapture() in MCUXpresso SDK</title>
    <link>https://community.nxp.com/t5/MCUXpresso-SDK/Bug-in-FTM-SetupDualEdgeCapture/m-p/890496#M1471</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;There is a bug in set-up of the input filtering. The function accepts a channel pair number, but this pair number is used as a direct channel number when setting up the filter.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Code currently in SDK 2.5.0 (and earlier)&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Input filter available only for channels 0, 1, 2, 3 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (chnlPairNumber &amp;lt; kFTM_Chnl_4)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reg = base-&amp;gt;FILTER;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reg &amp;amp;= ~(FTM_FILTER_CH0FVAL_MASK &amp;lt;&amp;lt; (FTM_FILTER_CH1FVAL_SHIFT * chnlPairNumber));&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reg |= (filterValue &amp;lt;&amp;lt; (FTM_FILTER_CH1FVAL_SHIFT * chnlPairNumber));&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; base-&amp;gt;FILTER = reg;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;This is incorrect as the check in the code expects a channel number, not a pair number. The bits in the FILTER register are also for channels not pairs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My proposed correction is as follows.&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* &lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;Input filter available only for channels 0, 1, 2, 3. Thus pairs 0 &amp;amp; 1 only (channels 0 &amp;amp; 2)&lt;/SPAN&gt; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((chnlPairNumber*2) &amp;lt; kFTM_Chnl_4)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reg = base-&amp;gt;FILTER;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reg &amp;amp;= ~(FTM_FILTER_CH0FVAL_MASK &amp;lt;&amp;lt; (FTM_FILTER_CH1FVAL_SHIFT * (chnlPairNumber*2)));&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reg |= (filterValue &amp;lt;&amp;lt; (FTM_FILTER_CH1FVAL_SHIFT * (chnlPairNumber*2)));&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; base-&amp;gt;FILTER = reg;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;This change is in-line with the rest of the code that converts the pair into a channel number when setting the register values.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 24 Apr 2019 15:23:53 GMT</pubDate>
    <dc:creator>markloit</dc:creator>
    <dc:date>2019-04-24T15:23:53Z</dc:date>
    <item>
      <title>Bug in FTM_SetupDualEdgeCapture()</title>
      <link>https://community.nxp.com/t5/MCUXpresso-SDK/Bug-in-FTM-SetupDualEdgeCapture/m-p/890496#M1471</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;There is a bug in set-up of the input filtering. The function accepts a channel pair number, but this pair number is used as a direct channel number when setting up the filter.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Code currently in SDK 2.5.0 (and earlier)&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Input filter available only for channels 0, 1, 2, 3 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (chnlPairNumber &amp;lt; kFTM_Chnl_4)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reg = base-&amp;gt;FILTER;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reg &amp;amp;= ~(FTM_FILTER_CH0FVAL_MASK &amp;lt;&amp;lt; (FTM_FILTER_CH1FVAL_SHIFT * chnlPairNumber));&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reg |= (filterValue &amp;lt;&amp;lt; (FTM_FILTER_CH1FVAL_SHIFT * chnlPairNumber));&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; base-&amp;gt;FILTER = reg;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;This is incorrect as the check in the code expects a channel number, not a pair number. The bits in the FILTER register are also for channels not pairs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My proposed correction is as follows.&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* &lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;Input filter available only for channels 0, 1, 2, 3. Thus pairs 0 &amp;amp; 1 only (channels 0 &amp;amp; 2)&lt;/SPAN&gt; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((chnlPairNumber*2) &amp;lt; kFTM_Chnl_4)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reg = base-&amp;gt;FILTER;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reg &amp;amp;= ~(FTM_FILTER_CH0FVAL_MASK &amp;lt;&amp;lt; (FTM_FILTER_CH1FVAL_SHIFT * (chnlPairNumber*2)));&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reg |= (filterValue &amp;lt;&amp;lt; (FTM_FILTER_CH1FVAL_SHIFT * (chnlPairNumber*2)));&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; base-&amp;gt;FILTER = reg;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;This change is in-line with the rest of the code that converts the pair into a channel number when setting the register values.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 24 Apr 2019 15:23:53 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MCUXpresso-SDK/Bug-in-FTM-SetupDualEdgeCapture/m-p/890496#M1471</guid>
      <dc:creator>markloit</dc:creator>
      <dc:date>2019-04-24T15:23:53Z</dc:date>
    </item>
    <item>
      <title>Re: Bug in FTM_SetupDualEdgeCapture()</title>
      <link>https://community.nxp.com/t5/MCUXpresso-SDK/Bug-in-FTM-SetupDualEdgeCapture/m-p/890497#M1472</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Mark,&lt;/P&gt;&lt;P&gt;Yes, you are right. Input filter available only for channels 0, 1, 2, 3. This is a bug. I'll report this bug.&lt;/P&gt;&lt;P&gt;Thanks a lot!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Jing&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 25 Apr 2019 06:51:04 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MCUXpresso-SDK/Bug-in-FTM-SetupDualEdgeCapture/m-p/890497#M1472</guid>
      <dc:creator>jingpan</dc:creator>
      <dc:date>2019-04-25T06:51:04Z</dc:date>
    </item>
  </channel>
</rss>

