<?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: edge-aligned setting in kinetis k40 in University Programs</title>
    <link>https://community.nxp.com/t5/University-Programs/edge-aligned-setting-in-kinetis-k40/m-p/189010#M25</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'm a student and i 'm reading a dc motor tutorial of k40.I already set Write Protect Disable as wrote in tutorial but i can understand how set decapen msnb and combine using the mask.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 10 Sep 2012 22:15:55 GMT</pubDate>
    <dc:creator>MatteoPioTotta</dc:creator>
    <dc:date>2012-09-10T22:15:55Z</dc:date>
    <item>
      <title>edge-aligned setting in kinetis k40</title>
      <link>https://community.nxp.com/t5/University-Programs/edge-aligned-setting-in-kinetis-k40/m-p/189008#M23</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,i need to set edge-aligned pwm in kinetis k40 but i can't understand how set 'COMBINE'=0 MSnB=1 and CPWMS=0. I already set DECAPEN and QUADEN using the mask,but i can't set COMBINE,MSnB AND CPWMS!Anyone can help me?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 10 Sep 2012 21:40:32 GMT</pubDate>
      <guid>https://community.nxp.com/t5/University-Programs/edge-aligned-setting-in-kinetis-k40/m-p/189008#M23</guid>
      <dc:creator>MatteoPioTotta</dc:creator>
      <dc:date>2012-09-10T21:40:32Z</dc:date>
    </item>
    <item>
      <title>Re: edge-aligned setting in kinetis k40</title>
      <link>https://community.nxp.com/t5/University-Programs/edge-aligned-setting-in-kinetis-k40/m-p/189009#M24</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Are you setting the WPDIS?&amp;nbsp; (Write Protect Disable)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If that doesn't fix it send the snippet of your code where your initializing the FTM.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 10 Sep 2012 22:07:05 GMT</pubDate>
      <guid>https://community.nxp.com/t5/University-Programs/edge-aligned-setting-in-kinetis-k40/m-p/189009#M24</guid>
      <dc:creator>admin</dc:creator>
      <dc:date>2012-09-10T22:07:05Z</dc:date>
    </item>
    <item>
      <title>Re: edge-aligned setting in kinetis k40</title>
      <link>https://community.nxp.com/t5/University-Programs/edge-aligned-setting-in-kinetis-k40/m-p/189010#M25</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'm a student and i 'm reading a dc motor tutorial of k40.I already set Write Protect Disable as wrote in tutorial but i can understand how set decapen msnb and combine using the mask.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 10 Sep 2012 22:15:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/University-Programs/edge-aligned-setting-in-kinetis-k40/m-p/189010#M25</guid>
      <dc:creator>MatteoPioTotta</dc:creator>
      <dc:date>2012-09-10T22:15:55Z</dc:date>
    </item>
    <item>
      <title>Re: edge-aligned setting in kinetis k40</title>
      <link>https://community.nxp.com/t5/University-Programs/edge-aligned-setting-in-kinetis-k40/m-p/189011#M26</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;My code is:&lt;/P&gt;&lt;P&gt;/*&lt;/P&gt;&lt;P&gt; * PWM.c&lt;/P&gt;&lt;P&gt; *&lt;/P&gt;&lt;P&gt; *&amp;nbsp; Created on: 10/set/2012&lt;/P&gt;&lt;P&gt; *&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Author: teteo&lt;/P&gt;&lt;P&gt; */&lt;/P&gt;&lt;P&gt;#include "Clock.h"&lt;/P&gt;&lt;P&gt;#include"derivative.h"&lt;/P&gt;&lt;P&gt;#include&amp;lt;stdio.h&amp;gt;&lt;/P&gt;&lt;P&gt;float MotorTickVar;&lt;/P&gt;&lt;P&gt;void InizializzazionePwmMotore()&amp;nbsp; &lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Enable the Clock to the FTM1 Module&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIM_SCGC6 |= SIM_SCGC6_FTM1_MASK; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // PORTC_PCR4 = PORT_PCR_MUX(1) | PORT_PCR_DSE_MASK;&amp;nbsp;&amp;nbsp; //Enable GPIO on on the pin -&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //route the output of that channel 0 to the pin... (pick a different multiplexer value for routing the timer)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //ch 11.4.1 of the k40 reference manual is the pin control register&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //For port c pin 1..&amp;nbsp;&amp;nbsp; bits 10-8&amp;nbsp; Pin Mux Control...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTA_PCR8&amp;nbsp; = PORT_PCR_MUX(3)&amp;nbsp; | PORT_PCR_DSE_MASK;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTA_PCR9&amp;nbsp; = PORT_PCR_MUX(3)&amp;nbsp; | PORT_PCR_DSE_MASK;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Choose EDGE-Aligned PWM:&amp;nbsp; selected when QUADEN=0, DECAPEN=0, COMBINE=0, CPWMS=0, and MSnB=1&amp;nbsp; (page 964)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Properly set up Flex Timer Module&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ////Per prima cosa bisogna abilitare la scrittura di alcuni registri:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //FTM0_MODE[WPDIS] = 1; //Disable Write Protection - enables changes to QUADEN, DECAPEN, etc.&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FTM1_MODE |= FTM_MODE_WPDIS_MASK;//DISABILITA LA PROTEZIONE DELLA SCRITTURA&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /////////////////SETTAGGIO DECAPEN&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //FTMEN is bit 0, need to set to zero so DECAPEN can be set to 0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FTM1_MODE &amp;amp;= ~1; //METTE A ZERO DECAPEN&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /////////////SETTAGGIO QUADEN&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Set Edge Aligned PWM&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FTM1_QDCTRL &amp;amp;=~FTM_QDCTRL_QUADEN_MASK;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //QUADEN is Bit 1, Set Quadrature Decoder Mode (QUADEN) Enable to 0,&amp;nbsp;&amp;nbsp; (disabled)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //FTM0_SC = 0x16; //Center Aligned PWM Select = 0, sets FTM Counter to operate in up counting mode, &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //it is field 5 of FTMx_SC (status control) - also setting the pre-scale bits here&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; //////PROVO A SETTARE DECAPEN E COMBINE&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FTM1_COMBINE|=FTM_COMBINE_COMBINE0_MASK;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FTM1_/////////???????????????????????????&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &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; Also need to setup the FTM0C0SC channel control register&amp;nbsp; - Page 897&amp;nbsp;&amp;nbsp; section 37.3.6&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM1_CNT = 0x0; //FTM Counter Value - (initialize the CNT before writing to MOD)&amp;nbsp; (16 bit available - bits 0-15 are count)&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM1_MOD = 0x0; //Set the Modulo register (16 bit available - bits 0-15), Mod is set to 24000&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM1_CNTIN = 0; //Set the Counter Initial Value to 0&amp;nbsp;&amp;nbsp; (pg 915)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; //change MSnB = 1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM1_C0SC |= FTM_CnSC_ELSB_MASK;&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM1_C0SC &amp;amp;= ~FTM_CnSC_ELSA_MASK;&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM1_C0SC |= FTM_CnSC_MSB_MASK;&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM1_C0V = 0x0; //Set the Channel n Value to&amp;nbsp; (16 bit available - bits 0-15)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; //Set the complimentary pinout&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM1_C1SC |= FTM_CnSC_ELSB_MASK;&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM1_C1SC &amp;amp;= ~FTM_CnSC_ELSA_MASK;&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM1_C1SC |= FTM_CnSC_MSB_MASK;&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM1_C1V = 0x0;&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM1_SC = FTM_SC_PS(0) | FTM_SC_CLKS(1);&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; // Interrupts&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM1_SC |= FTM_SC_TOIE_MASK; //enable the interrupt mask&lt;/P&gt;&lt;P&gt;&amp;nbsp; enable_irq(63);&amp;nbsp; // (79-16) Set NVIC location, but you still have to change/check NVIC file sysinit.c under Project Settings Folder&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;// Set the PWM of the Motor&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void SetMotorPWM(float DutyCycle)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; //float compDuty = (float)100.0-DutyCycle;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; FTM1_C0V =(int)((DutyCycle*.01)* (float)0x0);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; FTM1_C1V =(int)((1.0-DutyCycle*.01)* (float)0x0);&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;//Create Interrupt when motor functions are complete&lt;/P&gt;&lt;P&gt;void MotorTick()&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;if (MotorTickVar &amp;lt; 0xff)//if motor tick less than 255 count up... &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; MotorTickVar++;&lt;/P&gt;&lt;P&gt;//Clear the overflow mask if set&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if(FTM1_SC &amp;amp; FTM_SC_TOF_MASK)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; FTM1_SC &amp;amp;= ~FTM_SC_TOF_MASK;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; //LED_E2_TOGGLE; // ends up being ___ Hz (correct)&lt;/P&gt;&lt;P&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, 10 Sep 2012 22:18:59 GMT</pubDate>
      <guid>https://community.nxp.com/t5/University-Programs/edge-aligned-setting-in-kinetis-k40/m-p/189011#M26</guid>
      <dc:creator>MatteoPioTotta</dc:creator>
      <dc:date>2012-09-10T22:18:59Z</dc:date>
    </item>
  </channel>
</rss>

