<?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: Quadrature Decoding with MCUXpresso SDK2.2 on FRDM-K66F in MCUXpresso SDK</title>
    <link>https://community.nxp.com/t5/MCUXpresso-SDK/Quadrature-Decoding-with-MCUXpresso-SDK2-2-on-FRDM-K66F/m-p/669093#M146</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;so, I do not consider you can compile completly,If you &amp;nbsp;find demo project of &lt;SPAN style="color: #000000; background-color: #f8f8f8; font-size: 12px;"&gt;Quadrature Decoder soft ,it will save much more time,Good luckly!&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 17 Jun 2017 03:26:03 GMT</pubDate>
    <dc:creator>richishion</dc:creator>
    <dc:date>2017-06-17T03:26:03Z</dc:date>
    <item>
      <title>Quadrature Decoding with MCUXpresso SDK2.2 on FRDM-K66F</title>
      <link>https://community.nxp.com/t5/MCUXpresso-SDK/Quadrature-Decoding-with-MCUXpresso-SDK2-2-on-FRDM-K66F/m-p/669092#M145</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Just figured this out, might be helpful to someone else.&amp;nbsp;The following assumes that you mux'd the pins correctly, so that the quadrature encoder is hooked up to the FTM's phase A and B inputs.&lt;/P&gt;&lt;P&gt;I am setting the counter to 30000 so that the motor can move in either direction without an overflow.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="language-c line-numbers"&gt;&lt;CODE&gt;&lt;SPAN class="comment token"&gt;// config FTM 2 for quadrature decoding&lt;/SPAN&gt;

&lt;SPAN class="comment token"&gt;// Init FTM2&lt;/SPAN&gt;
ftm_config_t flex_config&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="token function"&gt;FTM_GetDefaultConfig&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="operator token"&gt;&amp;amp;&lt;/SPAN&gt;flex_config&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="token function"&gt;FTM_Init&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;FTM2&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;&amp;amp;&lt;/SPAN&gt;flex_config&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

&lt;SPAN class="comment token"&gt;// set MOD, which is overflow value&lt;/SPAN&gt;
FTM2&lt;SPAN class="operator token"&gt;-&amp;gt;&lt;/SPAN&gt;MOD &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;60000U&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

&lt;SPAN class="comment token"&gt;// set CNTIN, set counter to CNTIN&lt;/SPAN&gt;
FTM2&lt;SPAN class="operator token"&gt;-&amp;gt;&lt;/SPAN&gt;CNTIN &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;30000U&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
FTM2&lt;SPAN class="operator token"&gt;-&amp;gt;&lt;/SPAN&gt;CNT &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;1U&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;// specific value doesn't matter&lt;/SPAN&gt;

&lt;SPAN class="comment token"&gt;// then set cntin to 0, so that counter can decrease below value set above&lt;/SPAN&gt;
FTM2&lt;SPAN class="operator token"&gt;-&amp;gt;&lt;/SPAN&gt;CNTIN &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0U&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

&lt;SPAN class="comment token"&gt;// And init quadrature decoding, did not experiment with filter value too much&lt;/SPAN&gt;
ftm_phase_params_t ftm_phase_par&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
ftm_phase_par&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;enablePhaseFilter &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; true&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="comment token"&gt;// signal needs to be consistent for phaseFilterVal * 4 * sys_tick&lt;/SPAN&gt;
ftm_phase_par&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;phaseFilterVal &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;8&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; 
ftm_phase_par&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;phasePolarity &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; kFTM_QuadPhaseNormal&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

&lt;SPAN class="comment token"&gt;// function "starts" timer, too.&lt;/SPAN&gt;
&lt;SPAN class="token function"&gt;FTM_SetupQuadDecode&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;FTM2&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;&amp;amp;&lt;/SPAN&gt;ftm_phase_par&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;&amp;amp;&lt;/SPAN&gt;ftm_phase_par&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; kFTM_QuadPhaseEncode&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Note that if you want to set the counter value as above, you must first stop the quad decoding. E.g. as follows:&lt;/P&gt;&lt;PRE class="language-c line-numbers"&gt;&lt;CODE&gt;&lt;SPAN class="comment token"&gt;// stop quad decoding&lt;/SPAN&gt;
FTM2&lt;SPAN class="operator token"&gt;-&amp;gt;&lt;/SPAN&gt;QDCTRL &lt;SPAN class="operator token"&gt;&amp;amp;&lt;/SPAN&gt;&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="operator token"&gt;~&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;1U&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

&lt;SPAN class="comment token"&gt;// set CNTIN and set counter to cntin&lt;/SPAN&gt;
FTM2&lt;SPAN class="operator token"&gt;-&amp;gt;&lt;/SPAN&gt;CNTIN &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;30000U&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
FTM2&lt;SPAN class="operator token"&gt;-&amp;gt;&lt;/SPAN&gt;CNT &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;1U&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;// specific value doesn't matter&lt;/SPAN&gt;

&lt;SPAN class="comment token"&gt;// then set cntin to 0, so that counter can decrease below value set above&lt;/SPAN&gt;
FTM2&lt;SPAN class="operator token"&gt;-&amp;gt;&lt;/SPAN&gt;CNTIN &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0U&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

&lt;SPAN class="comment token"&gt;// start quad decoding&lt;/SPAN&gt;
FTM2&lt;SPAN class="operator token"&gt;-&amp;gt;&lt;/SPAN&gt;QDCTRL &lt;SPAN class="operator token"&gt;|&lt;/SPAN&gt;&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;1U&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;‍‍‍‍‍‍‍‍‍‍‍‍&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Feedback welcome, of course!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 06 May 2017 17:57:51 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MCUXpresso-SDK/Quadrature-Decoding-with-MCUXpresso-SDK2-2-on-FRDM-K66F/m-p/669092#M145</guid>
      <dc:creator>philipp_zh</dc:creator>
      <dc:date>2017-05-06T17:57:51Z</dc:date>
    </item>
    <item>
      <title>Re: Quadrature Decoding with MCUXpresso SDK2.2 on FRDM-K66F</title>
      <link>https://community.nxp.com/t5/MCUXpresso-SDK/Quadrature-Decoding-with-MCUXpresso-SDK2-2-on-FRDM-K66F/m-p/669093#M146</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;so, I do not consider you can compile completly,If you &amp;nbsp;find demo project of &lt;SPAN style="color: #000000; background-color: #f8f8f8; font-size: 12px;"&gt;Quadrature Decoder soft ,it will save much more time,Good luckly!&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 17 Jun 2017 03:26:03 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MCUXpresso-SDK/Quadrature-Decoding-with-MCUXpresso-SDK2-2-on-FRDM-K66F/m-p/669093#M146</guid>
      <dc:creator>richishion</dc:creator>
      <dc:date>2017-06-17T03:26:03Z</dc:date>
    </item>
  </channel>
</rss>

