<?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>8-bit MicrocontrollersのトピックRe: Timer/PWM inizialization</title>
    <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Timer-PWM-inizialization/m-p/155202#M8779</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi BigMac!&lt;/P&gt;&lt;P&gt;I have understood the same. I set bit 6 (and EnableInterrupts &lt;IMG alt=":smileywink:" class="emoticon emoticon-smileywink" id="smileywink" src="http://freescale.i.lithium.com/i/smilies/16x16_smiley-wink.gif" title="Smiley Wink" /&gt; )&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;TPM1C0SC = 0x40;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;but I never reach (also in simultaion)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;__interrupt VectorNumber_Vtpm1ch0 void TI0CH_Interrupt (void).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;More: I try to put on on a pin (PTA6, TPM1CH2) =&amp;gt;&amp;nbsp;TPM1C2SC = 0x68; (edge aligned)&amp;nbsp;using code found on "&lt;STRONG&gt;&lt;FONT face="Helvetica-Bold" size="7"&gt;&lt;FONT face="Helvetica-Bold" size="7"&gt;&lt;FONT size="2"&gt;HCS08 Peripheral Module&lt;/FONT&gt; &lt;FONT size="2"&gt;Quick Reference Guide&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/STRONG&gt;" . In this case i reach&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;__interrupt VectorNumber_Vtpm1ch2&amp;nbsp; void TI2CH_Interrupt (void)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;but with oscilloscope I didn't see anything on the pin.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;:/&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 14 Oct 2010 13:48:22 GMT</pubDate>
    <dc:creator>roberto_m</dc:creator>
    <dc:date>2010-10-14T13:48:22Z</dc:date>
    <item>
      <title>Timer/PWM inizialization</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Timer-PWM-inizialization/m-p/155199#M8776</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi to all.&lt;BR /&gt;I'm using Timer/PWM Module, on my qe64, to get a timer. Until today I need only one timer&lt;BR /&gt;and with this code:&lt;/P&gt;&lt;P&gt;void init_tpm ()&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; // Impostazioni: attivazione clock alla periferica TPM1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;SCGC1_TPM1 = 1;&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;// Impostazioni&amp;nbsp; TPM1&lt;BR /&gt;&amp;nbsp;&amp;nbsp; TPM1SC = 0x48;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;// 0b01001000&lt;BR /&gt;&amp;nbsp;&amp;nbsp;//&amp;nbsp;&amp;nbsp; ||||||||&amp;nbsp;&amp;nbsp; Divisore del clock della sorgente 111&amp;gt;&amp;gt;128;000&amp;gt;&amp;gt;1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;//&amp;nbsp;&amp;nbsp; |||||||+-- TPM1SC_PS0&amp;nbsp;&amp;nbsp; = 0;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;//&amp;nbsp;&amp;nbsp; ||||||+--- TPM1SC_PS1&amp;nbsp;&amp;nbsp; = 0;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;//&amp;nbsp;&amp;nbsp; |||||+---- TPM1SC_PS2&amp;nbsp;&amp;nbsp; = 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;//&amp;nbsp;&amp;nbsp; |||||&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;//&amp;nbsp;&amp;nbsp; |||||&amp;nbsp;&amp;nbsp;&amp;nbsp;Settando i bit CLSKA/B del registro TPM1SC si&lt;BR /&gt;&amp;nbsp;&amp;nbsp;//&amp;nbsp;&amp;nbsp; |||||&amp;nbsp;&amp;nbsp;&amp;nbsp;sceglie come clk di riferimento il clk del bus&lt;BR /&gt;&amp;nbsp;&amp;nbsp;//&amp;nbsp;&amp;nbsp; |||||&lt;BR /&gt;&amp;nbsp;&amp;nbsp;//&amp;nbsp;&amp;nbsp; ||||+----- TPM1SC_CLKSA = 1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;//&amp;nbsp;&amp;nbsp; |||+------ TPM1SC_CLKSB = 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;//&amp;nbsp;&amp;nbsp; ||+-------&lt;BR /&gt;&amp;nbsp;&amp;nbsp;//&amp;nbsp;&amp;nbsp; |+-------- TPM1SC_TOIE&amp;nbsp; = 1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;//&amp;nbsp;&amp;nbsp; +--------- Sola lettura&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;// Impostazione del modulo del contatore: quando lo raggiunge si resetta&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;TPM1MOD = 20000;&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;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;// Impostando i bit EdgeLevelSelect il controllo delle porte non è&lt;BR /&gt;&amp;nbsp;&amp;nbsp;// della periferica TPM&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; TPM1C0SC_ELS0B = 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; TPM1C0SC_ELS0A = 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;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; TPM1C1SC_ELS1B = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; TPM1C1SC_ELS1A = 0;&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; TPM1C2SC_ELS2B = 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; TPM1C2SC_ELS2A = 0;&amp;nbsp;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;and:&lt;/P&gt;&lt;P&gt;__interrupt VectorNumber_Vtpm1ovf void TI1_Interrupt (void)&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;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Reset del flag di overflow&lt;BR /&gt;&amp;nbsp; &amp;nbsp;TPM1SC_TOF = 0;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; &amp;nbsp;DisableInterrupts;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;...&lt;BR /&gt;&amp;nbsp;&amp;nbsp;...&lt;BR /&gt;&amp;nbsp;&amp;nbsp;...&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; EnableInterrupts;&lt;BR /&gt;&amp;nbsp;}&lt;/P&gt;&lt;P&gt;Now I need more timers. So i thinked to set the TPM counter as a free running timer counter and use&lt;BR /&gt;two channels.&lt;BR /&gt;I started with one channel. Here is the code:&lt;/P&gt;&lt;P&gt;void init_tpm1 ()&lt;BR /&gt;&amp;nbsp;{&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; // Impostazioni: attivazione clock alla periferica TPM1&lt;BR /&gt;&amp;nbsp; &amp;nbsp;SCGC1_TPM1 = 1;&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;// Impostazioni&amp;nbsp; TPM1&lt;BR /&gt;&amp;nbsp;&amp;nbsp; TPM1SC = 0x08; // no TOF - interrupt ENABLE&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;TPM1MOD = 0; // free running timer counter&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; // CH 0&lt;BR /&gt;&amp;nbsp;&amp;nbsp;TPM1C0SC = 0x40;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;TPM1C0V = 20000;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // CH 1&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;TPM1C1SC = 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;TPM1C1V = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;// CH 2&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;TPM1C2SC = 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;TPM1C2V = 0;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;}&lt;/P&gt;&lt;P&gt;and:&lt;/P&gt;&lt;P&gt;__interrupt VectorNumber_Vtpm1ch0 void TI0CH_Interrupt (void)&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;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Reset del flag di overflow&lt;BR /&gt;&amp;nbsp; &amp;nbsp;TPM1C0SC_CH0F = 0;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; &amp;nbsp;DisableInterrupts;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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; ...&lt;BR /&gt;&amp;nbsp;&amp;nbsp;...&lt;BR /&gt;&amp;nbsp;&amp;nbsp;...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; EnableInterrupts;&lt;BR /&gt;&amp;nbsp;}&lt;/P&gt;&lt;P&gt;I expected to have the same behaviour. But I never reach __interrupt VectorNumber_Vtpm1ch0 void TI0CH_Interrupt (void)&lt;BR /&gt;Where I'm wrong?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 13 Oct 2010 19:28:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Timer-PWM-inizialization/m-p/155199#M8776</guid>
      <dc:creator>roberto_m</dc:creator>
      <dc:date>2010-10-13T19:28:27Z</dc:date>
    </item>
    <item>
      <title>Re: Timer/PWM inizialization</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Timer-PWM-inizialization/m-p/155200#M8777</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Update. I read and read the user manual.&lt;/P&gt;&lt;P&gt;Pag. 296:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Arial" size="1"&gt;&lt;FONT face="Arial" size="1"&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P align="left"&gt;«Setting ELSnB:ELSnA to 0:0 configures the related timer pin as a general purpose I/O pin not related to any timer&lt;/P&gt;&lt;P align="left"&gt;functions. This function is typically used to temporarily disable an input capture channel or to make the timer pin&lt;/P&gt;&lt;P align="left"&gt;available as a general purpose I/O pin when the associated timer channel is set up as a software timer that does&lt;/P&gt;&lt;P&gt;not require the use of a pin.»&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I've seen if I use this option I haven't any interrupt.&amp;nbsp;But I&amp;nbsp;think that software timer generates&amp;nbsp;interrupt&amp;nbsp;or&amp;nbsp;should I polling it?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 13 Oct 2010 23:06:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Timer-PWM-inizialization/m-p/155200#M8777</guid>
      <dc:creator>roberto_m</dc:creator>
      <dc:date>2010-10-13T23:06:27Z</dc:date>
    </item>
    <item>
      <title>Re: Timer/PWM inizialization</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Timer-PWM-inizialization/m-p/155201#M8778</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Roberto,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;With the TPM channel pin disabled you should still obtain a compare interrupt, provided the channel interrupt is enabled by setting bit 6 of TPMxCnSC register.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Mac&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 14 Oct 2010 00:33:36 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Timer-PWM-inizialization/m-p/155201#M8778</guid>
      <dc:creator>bigmac</dc:creator>
      <dc:date>2010-10-14T00:33:36Z</dc:date>
    </item>
    <item>
      <title>Re: Timer/PWM inizialization</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Timer-PWM-inizialization/m-p/155202#M8779</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi BigMac!&lt;/P&gt;&lt;P&gt;I have understood the same. I set bit 6 (and EnableInterrupts &lt;IMG alt=":smileywink:" class="emoticon emoticon-smileywink" id="smileywink" src="http://freescale.i.lithium.com/i/smilies/16x16_smiley-wink.gif" title="Smiley Wink" /&gt; )&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;TPM1C0SC = 0x40;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;but I never reach (also in simultaion)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;__interrupt VectorNumber_Vtpm1ch0 void TI0CH_Interrupt (void).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;More: I try to put on on a pin (PTA6, TPM1CH2) =&amp;gt;&amp;nbsp;TPM1C2SC = 0x68; (edge aligned)&amp;nbsp;using code found on "&lt;STRONG&gt;&lt;FONT face="Helvetica-Bold" size="7"&gt;&lt;FONT face="Helvetica-Bold" size="7"&gt;&lt;FONT size="2"&gt;HCS08 Peripheral Module&lt;/FONT&gt; &lt;FONT size="2"&gt;Quick Reference Guide&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/STRONG&gt;" . In this case i reach&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;__interrupt VectorNumber_Vtpm1ch2&amp;nbsp; void TI2CH_Interrupt (void)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;but with oscilloscope I didn't see anything on the pin.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;:/&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 14 Oct 2010 13:48:22 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Timer-PWM-inizialization/m-p/155202#M8779</guid>
      <dc:creator>roberto_m</dc:creator>
      <dc:date>2010-10-14T13:48:22Z</dc:date>
    </item>
  </channel>
</rss>

