<?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: Re: TPM1MOD PWM abnormal in 8-bit Microcontrollers</title>
    <link>https://community.nxp.com/t5/8-bit-Microcontrollers/TPM1MOD-PWM-abnormal/m-p/230230#M19393</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi &lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;Konstantinos&lt;/SPAN&gt;,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The modules in S08SE and S08PA are different, but now I suppose I misunderstood the issue you met in S08SE. I just do some test in S08P family,&lt;/P&gt;&lt;P&gt;below is the code.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void FTM0_Init(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FTM0_SC = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FTM0_C0SC = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FTM0_C1SC = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FTM0_MOD = 0xFFFF;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORT_PTDIE_PTDIE6 = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORT_PTDOE_PTDOE6 = 1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORT_PTDD_PTDD6 = 0;&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; FTM0_SC = 0x4C; // start&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;// Interrupt Service Routine&lt;/P&gt;&lt;P&gt;ISR(IsrFTM0OVF)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;// NOTE: The routine should include actions to clear the appropriate&lt;/P&gt;&lt;P&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; interrupt flags.&lt;/P&gt;&lt;P&gt;//&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; static byte overflow_count = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte dummy;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dummy = FTM0_SC;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FTM0_SC_TOF = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FTM0_MOD = 0x5000;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; overflow_count++;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(overflow_count == 6)&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;&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; if(overflow_count == 12)&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;&amp;nbsp;&amp;nbsp; FTM0_SC_CLKS = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORT_PTDIE_PTDIE6 = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORT_PTDOE_PTDOE6 = 1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORT_PTDD_PTDD6 ^= 1;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In the ISR, I toggled one GPIO to be monitored by&amp;nbsp; an Osilloscope.&amp;nbsp; I got below waveform:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="tek00000.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/40191i95DF07811FA23269/image-size/large?v=v2&amp;amp;px=999" role="button" title="tek00000.png" alt="tek00000.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;We can see the first period is still 0xFFFF, and FTMxMOD is updated at the first falling edge(the second overflow interrupt).&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;Is that what you observed in S08PA?&amp;nbsp; Could you share the waveform got from S08SE?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 01 Aug 2013 07:54:12 GMT</pubDate>
    <dc:creator>weapon</dc:creator>
    <dc:date>2013-08-01T07:54:12Z</dc:date>
    <item>
      <title>TPM1MOD PWM abnormal</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/TPM1MOD-PWM-abnormal/m-p/230227#M19390</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello, &lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;In one of our products we use the MC9S08SE4 microcontroller.&lt;/P&gt;&lt;P&gt;We have noticed that when we change the PWM period (TPM1MOD) in the timer overflow interrupt (Vtpm1ovf),&lt;/P&gt;&lt;P&gt;there are two PWM periods until next overflow interrupt.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Our code sample - in order to reproduce this issue - is:&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;unsigned int TPM1MOD_BUF;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;void main(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TPM1MOD = 500;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TPM1CNTH = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TPM1C0SC = 0x28;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TPM1C0V = 250;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TPM1SC = 0x4B;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; EnableInterrupts;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(;;)&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;&amp;nbsp;&amp;nbsp; __RESET_WATCHDOG();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;interrupt VectorNumber_Vtpm1ovf void isr_Vtpm1ovf(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TPM1SC;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TPM1SC_TOF = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TPM1MOD_BUF = TPM1MOD;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TPM1MOD_BUF += 100;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TPM1MOD = TPM1MOD_BUF;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TPM1MOD_BUF &amp;gt;&amp;gt;= 1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TPM1C0V = TPM1MOD_BUF;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TPM1C1V = TPM1MOD_BUF;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Do you know why is this happening?&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks in advance.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 30 Jul 2013 11:15:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/TPM1MOD-PWM-abnormal/m-p/230227#M19390</guid>
      <dc:creator>konstantinoshal</dc:creator>
      <dc:date>2013-07-30T11:15:11Z</dc:date>
    </item>
    <item>
      <title>Re: TPM1MOD PWM abnormal</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/TPM1MOD-PWM-abnormal/m-p/230228#M19391</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, That is normal behavior. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please check the below mechanism of writing TPMxMOD, you can find it in the section 13.4.3 of&amp;nbsp; the reference manual (page 197) &lt;/P&gt;&lt;P&gt;Writing to either byte (TPMxMODH or TPMxMODL) latches the value into a buffer and the registers are&lt;/P&gt;&lt;P&gt;updated with the value of their write buffer according to the value of CLKSB:CLKSA bits, so:&lt;/P&gt;&lt;P&gt;• If (CLKSB:CLKSA = 0:0), then the registers are updated when the second byte is written&lt;/P&gt;&lt;P&gt;• If (CLKSB:CLKSA not = 0:0), then the registers are updated after both bytes were written, and the&lt;/P&gt;&lt;P&gt;TPM counter changes from (TPMxMODH:TPMxMODL - 1) to (TPMxMODH:TPMxMODL). If&lt;/P&gt;&lt;P&gt;the TPM counter is a free-running counter, the update is made when the TPM counter changes from&lt;/P&gt;&lt;P&gt;0xFFFE to 0xFFFF&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you turn off the TPM in the interrupt, then write TPMxMOD, the value will be updated immediately. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;B.R&lt;/P&gt;&lt;P&gt;XWP&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 31 Jul 2013 07:56:18 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/TPM1MOD-PWM-abnormal/m-p/230228#M19391</guid>
      <dc:creator>weapon</dc:creator>
      <dc:date>2013-07-31T07:56:18Z</dc:date>
    </item>
    <item>
      <title>Re: TPM1MOD PWM abnormal</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/TPM1MOD-PWM-abnormal/m-p/230229#M19392</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Dear Xu,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;By using the exact same code to the &lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 12.800000190734863px;"&gt;MC9S08&lt;/SPAN&gt;PA4 microcontroller, &lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 12.800000190734863px;"&gt;there is only one PWM period until next overflow interrupt.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 12.800000190734863px;"&gt;According to the &lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 12.800000190734863px;"&gt;MC9S08&lt;/SPAN&gt;PA4 datasheet - section 12.4.8.1 - the &lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 12.800000190734863px;"&gt;mechanism of writing TPMxMOD&lt;/SPAN&gt; is the same. The only difference is that&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 12.800000190734863px;"&gt;the update is made when &lt;/SPAN&gt;the TPM counter changes from 0xFFFF to 0x0000.&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 12.800000190734863px;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 12.800000190734863px;"&gt;So, why there is different behavior on the two families? &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Konstantinos.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 31 Jul 2013 12:08:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/TPM1MOD-PWM-abnormal/m-p/230229#M19392</guid>
      <dc:creator>konstantinoshal</dc:creator>
      <dc:date>2013-07-31T12:08:55Z</dc:date>
    </item>
    <item>
      <title>Re: Re: TPM1MOD PWM abnormal</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/TPM1MOD-PWM-abnormal/m-p/230230#M19393</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi &lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;Konstantinos&lt;/SPAN&gt;,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The modules in S08SE and S08PA are different, but now I suppose I misunderstood the issue you met in S08SE. I just do some test in S08P family,&lt;/P&gt;&lt;P&gt;below is the code.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void FTM0_Init(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FTM0_SC = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FTM0_C0SC = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FTM0_C1SC = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FTM0_MOD = 0xFFFF;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORT_PTDIE_PTDIE6 = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORT_PTDOE_PTDOE6 = 1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORT_PTDD_PTDD6 = 0;&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; FTM0_SC = 0x4C; // start&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;// Interrupt Service Routine&lt;/P&gt;&lt;P&gt;ISR(IsrFTM0OVF)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;// NOTE: The routine should include actions to clear the appropriate&lt;/P&gt;&lt;P&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; interrupt flags.&lt;/P&gt;&lt;P&gt;//&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; static byte overflow_count = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte dummy;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dummy = FTM0_SC;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FTM0_SC_TOF = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FTM0_MOD = 0x5000;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; overflow_count++;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(overflow_count == 6)&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;&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; if(overflow_count == 12)&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;&amp;nbsp;&amp;nbsp; FTM0_SC_CLKS = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORT_PTDIE_PTDIE6 = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORT_PTDOE_PTDOE6 = 1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORT_PTDD_PTDD6 ^= 1;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In the ISR, I toggled one GPIO to be monitored by&amp;nbsp; an Osilloscope.&amp;nbsp; I got below waveform:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="tek00000.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/40191i95DF07811FA23269/image-size/large?v=v2&amp;amp;px=999" role="button" title="tek00000.png" alt="tek00000.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;We can see the first period is still 0xFFFF, and FTMxMOD is updated at the first falling edge(the second overflow interrupt).&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;Is that what you observed in S08PA?&amp;nbsp; Could you share the waveform got from S08SE?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 01 Aug 2013 07:54:12 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/TPM1MOD-PWM-abnormal/m-p/230230#M19393</guid>
      <dc:creator>weapon</dc:creator>
      <dc:date>2013-08-01T07:54:12Z</dc:date>
    </item>
    <item>
      <title>Re: TPM1MOD PWM abnormal</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/TPM1MOD-PWM-abnormal/m-p/230231#M19394</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Dear Xu,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please run the following example to a &lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 12.800000190734863px;"&gt;MC9S08SE4 &lt;/SPAN&gt;controller. You should see the results as per attached images.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void main(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PTAD = 0x00;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PTADD = 0xFF;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ICSTRM = 0xb9;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ICSC2 = 0x00;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TPM1CNTH = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TPM1MOD = 500;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TPM1C0SC = 0x28;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TPM1C0V = 250;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TPM1SC = 0x4B;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; EnableInterrupts;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(;;)&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;&amp;nbsp;&amp;nbsp; __RESET_WATCHDOG();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;interrupt VectorNumber_Vtpm1ovf void isr_Vtpm1ovf(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; static unsigned int TPM1MOD_BUF;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; static unsigned char i;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TPM1SC;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TPM1SC_TOF = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TPM1MOD_BUF = TPM1MOD;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TPM1MOD_BUF += 100;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TPM1MOD = TPM1MOD_BUF;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TPM1MOD_BUF &amp;gt;&amp;gt;= 1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TPM1C0V = TPM1MOD_BUF;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (++i == 4)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TPM1SC = 0;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As you can see, between overflow interrupts, there are two periods. Notice, that in overflow interrupt the PWM&lt;/P&gt;&lt;P&gt;period is changing by altering the TPM1MOD register. The initial period is 500 usec and in each overflow interrupt&lt;/P&gt;&lt;P&gt;is increasing by 100 usec. So, the expected values would be: 500 -&amp;gt; 600 -&amp;gt; 700 -&amp;gt; 800 usec. Instead we see that&lt;/P&gt;&lt;P&gt;the output periods are: 500 -&amp;gt; 600 -&amp;gt; 600 -&amp;gt; 700 -&amp;gt; 700 -&amp;gt; 800 etc. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="screenshot.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/40217iE85820EB3AC6F904/image-size/large?v=v2&amp;amp;px=999" role="button" title="screenshot.png" alt="screenshot.png" /&gt;&lt;/span&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="screenshot1.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/40209i242A868C6E4FED54/image-size/large?v=v2&amp;amp;px=999" role="button" title="screenshot1.png" alt="screenshot1.png" /&gt;&lt;/span&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="screenshot2.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/40218i2F252A56282A810E/image-size/large?v=v2&amp;amp;px=999" role="button" title="screenshot2.png" alt="screenshot2.png" /&gt;&lt;/span&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="screenshot3.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/40219i426BA03A5920590E/image-size/large?v=v2&amp;amp;px=999" role="button" title="screenshot3.png" alt="screenshot3.png" /&gt;&lt;/span&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="screenshot4.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/40220i3F6C1BFE3AE586E8/image-size/large?v=v2&amp;amp;px=999" role="button" title="screenshot4.png" alt="screenshot4.png" /&gt;&lt;/span&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="screenshot5.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/40221i623663486FCF140C/image-size/large?v=v2&amp;amp;px=999" role="button" title="screenshot5.png" alt="screenshot5.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;I hope everything is clear now.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Do you think that this is an abnormal behavior?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Konstantinos.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 02 Aug 2013 09:16:25 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/TPM1MOD-PWM-abnormal/m-p/230231#M19394</guid>
      <dc:creator>konstantinoshal</dc:creator>
      <dc:date>2013-08-02T09:16:25Z</dc:date>
    </item>
  </channel>
</rss>

