<?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: S12X output compare in S12 / MagniV Microcontrollers</title>
    <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/S12X-output-compare/m-p/772357#M15379</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Radek,&lt;/P&gt;&lt;P&gt;Thanks for your response. Unfortunately my knowledge of "C" is very limited, but I think I understand what your code does. I forgot to mention that I am using the TIM module, not the ECT module. I think they are quite similar in output compare operation though. I hadn't included my operation test code, just the init code to see if I had the set up correct or not. To test the code I have the PP0 (S12X pin 4) controlling an NPN transistor which controls an LED. The LED lights up when the pin goes high. To test it I add 65535 to the current value in TCNTH and load it into TTC0. This should give me a ~168Ms off delay. The LED lights up alright, but no matter what code changes I make, it will not time off.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;bset&amp;nbsp; PTP,PP0&lt;/P&gt;&lt;P&gt;ldd&amp;nbsp;&amp;nbsp; TCNTH&lt;/P&gt;&lt;P&gt;addd #$FFFF&lt;/P&gt;&lt;P&gt;std&amp;nbsp;&amp;nbsp; TTC0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have the interrupts disabled, is it still necessary to clear any interrupt flags either manually or by fast flag clear?&lt;/P&gt;&lt;P&gt;Also, is there someplace in the manuals that gives a list of the various register states out of reset?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Robert&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 31 Jan 2018 22:37:21 GMT</pubDate>
    <dc:creator>roberthiebert</dc:creator>
    <dc:date>2018-01-31T22:37:21Z</dc:date>
    <item>
      <title>S12X output compare</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/S12X-output-compare/m-p/772355#M15377</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;MC9S12XEP100 112LQEP. Programming in assembler.&lt;/P&gt;&lt;P&gt;I want all port P pins to be output compare, but I am having some difficulty in making them work. I suspect it may be something I’ve done in my set up. Does anyone see anything wrong with this?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;movb #$FF,DDRP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; (all port P pins outputs)&lt;/P&gt;&lt;P&gt;movb #$FF,TTIOS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; TTIOS equ $03D0 (all channels outputs)&lt;/P&gt;&lt;P&gt;movb #$98,TTSCR1&amp;nbsp;&amp;nbsp; ; TTSCR1 equ $03D6 (timer enabled, no stop in wait,&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; ; no stop in freeze, fast flag clear, precision timer)&lt;/P&gt;&lt;P&gt;movb #$00,TTOV&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; TTOV equ $03D7 (Toggle OC pin on overflow disabled)&lt;/P&gt;&lt;P&gt;movb #$55,TTCTL1&amp;nbsp;&amp;nbsp; ; TTCL1 equ $03D8 (toggle output line Ch7,6,5,4)&lt;/P&gt;&lt;P&gt;movb #$55,TTCTL2&amp;nbsp;&amp;nbsp; ; TTCL2 equ $03D9 (toggle output line Ch3,2,1,0)&lt;/P&gt;&lt;P&gt;movb #$00,TTCTL3&amp;nbsp;&amp;nbsp; ; TTCL3 equ $03DA (capture disabled Ch7,6,5,4)&lt;/P&gt;&lt;P&gt;movb #$00,TTCTL4&amp;nbsp;&amp;nbsp; ; TTCL4 equ $03DB (capture disabled Ch3,2,1,0)&lt;/P&gt;&lt;P&gt;movb #$00,TTIE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; TTIE equ $03DC (interrupts disabled)&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;/P&gt;&lt;P&gt;movb #$07,TTSCR2&amp;nbsp;&amp;nbsp; ; TTSCR2 equ $03DD (timer overflow interrupt disabled,&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; ; timer counter reset disabled, prescale divide by 128)&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;/P&gt;&lt;P&gt;movb #$FF,TTFLG1&amp;nbsp;&amp;nbsp; ; TTFLG1 equ $03DE (clear all flags)&lt;/P&gt;&lt;P&gt;movb #$FF,TTFLG2&amp;nbsp;&amp;nbsp; ; TTFLG2 equ $03DF (clear all flags)&lt;/P&gt;&lt;P&gt;movb #$00,PACTL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; PACTL equ $03F0 (Pulse accumulator disabled)&lt;/P&gt;&lt;P&gt;movb #$02,PAFLG&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; PAFLG equ $03F1 ( Clear pulse accumulator flags)&lt;/P&gt;&lt;P&gt;movb #$00,TOCPD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; TOCPD equ $03FC (Enable all timer channel pins)&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;movb #$7F,TPTPSR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; TPTPSR equ $03FE (prescale 128, 2.56us resolution,&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; ; max period 167.7696ms)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Robert&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 31 Jan 2018 05:10:09 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/S12X-output-compare/m-p/772355#M15377</guid>
      <dc:creator>roberthiebert</dc:creator>
      <dc:date>2018-01-31T05:10:09Z</dc:date>
    </item>
    <item>
      <title>Re: S12X output compare</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/S12X-output-compare/m-p/772356#M15378</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Robert,&lt;/P&gt;&lt;P&gt;When you use fast flag clear, you should avoid manual flag clearing.&lt;/P&gt;&lt;P&gt;The flags will be automatically cleared by writing into TC1..TC7 registers (which missing in your code).&lt;/P&gt;&lt;P&gt;The ECT timer module is rather designed for interrupt driving.&lt;/P&gt;&lt;P&gt;Below is very simple ECT example code in C-language for your reference.&lt;/P&gt;&lt;PRE class="language-c line-numbers"&gt;&lt;CODE&gt;&lt;SPAN class="property macro token"&gt;#define ECT_PERIOD 500&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="comment token"&gt;//500us&lt;/SPAN&gt;

&lt;SPAN class="comment token"&gt;//==============================================================================&lt;/SPAN&gt;
&lt;SPAN class="comment token"&gt;//TC0_ISR&lt;/SPAN&gt;
&lt;SPAN class="comment token"&gt;//==============================================================================&lt;/SPAN&gt;
&lt;SPAN class="property macro token"&gt;#pragma CODE_SEG NON_BANKED&lt;/SPAN&gt;
interrupt &lt;SPAN class="number token"&gt;8&lt;/SPAN&gt; &lt;SPAN class="keyword token"&gt;void&lt;/SPAN&gt; &lt;SPAN class="token function"&gt;TC0_ISR&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="keyword token"&gt;void&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
&lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
ECT_TFLG1 &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0x01&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&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; &lt;SPAN class="comment token"&gt;//clear the flag&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;
ECT_TC0 &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; ECT_TC0 &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt; ECT_PERIOD&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;
&lt;SPAN class="property macro token"&gt;#pragma CODE_SEG DEFAULT&lt;/SPAN&gt;

&lt;SPAN class="comment token"&gt;//==============================================================================&lt;/SPAN&gt;
&lt;SPAN class="comment token"&gt;//Timer_Init&lt;/SPAN&gt;
&lt;SPAN class="comment token"&gt;//==============================================================================&lt;/SPAN&gt;
&lt;SPAN class="keyword token"&gt;void&lt;/SPAN&gt; &lt;SPAN class="token function"&gt;ECT_Init&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="keyword token"&gt;void&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;//timer clk = bus clk / prescaler = 8Mhz / 8 = 1MHz&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;
ECT_TIOS &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0x01&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;//channel 0 as output compare&amp;nbsp; &lt;/SPAN&gt;
ECT_TIE &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0x01&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;//interrupt enable&amp;nbsp; &lt;/SPAN&gt;
ECT_TSCR2 &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0x03&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;//prescaler = 8&amp;nbsp; &lt;/SPAN&gt;
ECT_TC0 &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; ECT_PERIOD&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; 
ECT_TCTL1 &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0x00&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;&amp;nbsp; 
ECT_TCTL2 &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0x01&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;//output compare action - toggle channel 0&amp;nbsp; &lt;/SPAN&gt;
ECT_TSCR1 &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0xA0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;//timer enabled}&lt;/SPAN&gt;

&lt;SPAN class="comment token"&gt;//==============================================================================&lt;/SPAN&gt;
&lt;SPAN class="comment token"&gt;//main&lt;/SPAN&gt;
&lt;SPAN class="comment token"&gt;//==============================================================================&lt;/SPAN&gt;
&lt;SPAN class="keyword token"&gt;void&lt;/SPAN&gt; &lt;SPAN class="token function"&gt;main&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="keyword token"&gt;void&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt; 
&lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
&amp;nbsp; &lt;SPAN class="token function"&gt;ECT_Init&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp; EnableInterrupts&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp; &lt;SPAN class="keyword token"&gt;for&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt; 
&amp;nbsp; &lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
&amp;nbsp; &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;/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;&lt;/P&gt;&lt;P&gt;I hope it helps you.&lt;/P&gt;&lt;P&gt;Best regards&lt;/P&gt;&lt;P&gt;Radek&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 31 Jan 2018 16:41:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/S12X-output-compare/m-p/772356#M15378</guid>
      <dc:creator>RadekS</dc:creator>
      <dc:date>2018-01-31T16:41:55Z</dc:date>
    </item>
    <item>
      <title>Re: S12X output compare</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/S12X-output-compare/m-p/772357#M15379</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Radek,&lt;/P&gt;&lt;P&gt;Thanks for your response. Unfortunately my knowledge of "C" is very limited, but I think I understand what your code does. I forgot to mention that I am using the TIM module, not the ECT module. I think they are quite similar in output compare operation though. I hadn't included my operation test code, just the init code to see if I had the set up correct or not. To test the code I have the PP0 (S12X pin 4) controlling an NPN transistor which controls an LED. The LED lights up when the pin goes high. To test it I add 65535 to the current value in TCNTH and load it into TTC0. This should give me a ~168Ms off delay. The LED lights up alright, but no matter what code changes I make, it will not time off.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;bset&amp;nbsp; PTP,PP0&lt;/P&gt;&lt;P&gt;ldd&amp;nbsp;&amp;nbsp; TCNTH&lt;/P&gt;&lt;P&gt;addd #$FFFF&lt;/P&gt;&lt;P&gt;std&amp;nbsp;&amp;nbsp; TTC0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have the interrupts disabled, is it still necessary to clear any interrupt flags either manually or by fast flag clear?&lt;/P&gt;&lt;P&gt;Also, is there someplace in the manuals that gives a list of the various register states out of reset?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Robert&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 31 Jan 2018 22:37:21 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/S12X-output-compare/m-p/772357#M15379</guid>
      <dc:creator>roberthiebert</dc:creator>
      <dc:date>2018-01-31T22:37:21Z</dc:date>
    </item>
    <item>
      <title>Re: S12X output compare</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/S12X-output-compare/m-p/772358#M15380</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi again Radek. This is embarrassing! Disregard the question of reset states. I just found them in each register description. The other issues remain, unfortunately.&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Robert&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 01 Feb 2018 03:42:06 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/S12X-output-compare/m-p/772358#M15380</guid>
      <dc:creator>roberthiebert</dc:creator>
      <dc:date>2018-02-01T03:42:06Z</dc:date>
    </item>
    <item>
      <title>Re: S12X output compare</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/S12X-output-compare/m-p/772359#M15381</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Robert,&lt;/P&gt;&lt;P&gt;Thank you for clarification of your test environment. And especially for note about TIM.&lt;/P&gt;&lt;P&gt;Yes, you are right, the TIM and ECT modules are more-less the same. ECT has just some additional features.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Two notes:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;TCNTH is typically name for upper byte from TCNT register.&lt;/LI&gt;&lt;LI&gt;The TIM is by default routed to the port R (available only on MAPBGA package). You may route TIM signals to the port P by editing PTRRR Please check whether you configured this register correctly.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;BR&lt;/P&gt;&lt;P&gt;Radek&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 02 Feb 2018 16:21:28 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/S12X-output-compare/m-p/772359#M15381</guid>
      <dc:creator>RadekS</dc:creator>
      <dc:date>2018-02-02T16:21:28Z</dc:date>
    </item>
    <item>
      <title>Re: S12X output compare</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/S12X-output-compare/m-p/772360#M15382</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Radek,&lt;/P&gt;&lt;P&gt;Ah so! I didn't know that register even existed. Many thanks.&lt;/P&gt;&lt;P&gt;Robert&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 04 Feb 2018 21:42:10 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/S12X-output-compare/m-p/772360#M15382</guid>
      <dc:creator>roberthiebert</dc:creator>
      <dc:date>2018-02-04T21:42:10Z</dc:date>
    </item>
    <item>
      <title>Re: S12X output compare</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/S12X-output-compare/m-p/772361#M15383</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Robert,&lt;/P&gt;&lt;P&gt;You are welcome.&lt;/P&gt;&lt;P&gt;Anyway, when you look at &lt;SPAN style="font-size: 10.0pt;"&gt;Table 2-2. Pin Functions and Priorities&lt;/SPAN&gt; in RM, the signals in brackets are routed by default to another pin and you have to modify routing one of the routing registers for enabling this signal on the pin.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Did it work after routing register change?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;BR&lt;/P&gt;&lt;P&gt;Radek&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 05 Feb 2018 09:33:52 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/S12X-output-compare/m-p/772361#M15383</guid>
      <dc:creator>RadekS</dc:creator>
      <dc:date>2018-02-05T09:33:52Z</dc:date>
    </item>
    <item>
      <title>Re: S12X output compare</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/S12X-output-compare/m-p/772362#M15384</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Radek,&lt;/P&gt;&lt;P&gt;Unfortunately I 'm still doing something wrong. Here is my initialization and test coding:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;;*Equates:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;PTP&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; equ $0258&lt;/P&gt;&lt;P&gt;DDRP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; equ $025A&lt;/P&gt;&lt;P&gt;PTRRR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; equ $036F&lt;/P&gt;&lt;P&gt;TIM_TIOS&amp;nbsp;&amp;nbsp; equ $03D0&lt;/P&gt;&lt;P&gt;TIM_TCNT&amp;nbsp;&amp;nbsp; equ $03D4&lt;/P&gt;&lt;P&gt;TIM_TSCR1 equ $03D6&lt;/P&gt;&lt;P&gt;TIM_TCTL2 equ $03D9&lt;/P&gt;&lt;P&gt;TIM_TIE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; equ $03DC&lt;/P&gt;&lt;P&gt;TIM_TSCR2 equ $03DD&lt;/P&gt;&lt;P&gt;TIM_TFLG1 equ $03DE&lt;/P&gt;&lt;P&gt;TIM_PTPSR equ $03FE&lt;/P&gt;&lt;P&gt;TIM_TC3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; equ $03E6&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;;*Port P and TIM initialization:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; movb #$FF,PTRRR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; all TIM1 OC channels available on Port P&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; movb #$FF,DDRP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; all pins outputs&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; movb #$00,PTP&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; ; initialize all pins low&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; movb #$FF,TIM_TIOS&amp;nbsp;&amp;nbsp; ; all channels outputs&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; movb #$88,TIM_TSCR1 ; timer enabled, no stop in wait, no stop in freeze, no fast flag&amp;nbsp;&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;&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; ;clear, precision timer&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; movb #$FF,TIM_TIE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; enable interrupts all channels&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; movb #$07,TIM_TSCR2 ; timer overflow interrupt disabled, timer counter&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; reset disabled, prescale divide by 128&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;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; movb #$FF,TIM_TFLG1 ; clear all flags&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; movb #$80,TIM_TFLG2 ; clear TOF flag&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; movb #$7F,TIM_PTPSR ; prescale 128, 2.56us resolution, max period 167.7696ms&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;;*Test code to set channel pin high after ~2.56Usec:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; movb #$08,TIM_TFLG1&amp;nbsp;&amp;nbsp; ; clear Ch3 flag&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; movb #$C0,TIM_TCTL2&amp;nbsp;&amp;nbsp; ; Set Ch3 output line to 1 on compare)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; ldd TIM_TCNT&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; ; Contents of Timer Count Register-&amp;gt; Accu D&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; addd #$0001&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; ; Add 1 (2.56uS)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; std TIM_TC3&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; ; Start OC operation&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;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;; Should result in pin high and interrupt in ~2.56uS&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;;*SUCSESS, PIN HIGH!&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;&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;&lt;/P&gt;&lt;P&gt;;*Test code to set channel pin low after ~168Msec (TIM Ch3 Interrupt Service Routine)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; movb #$08,TIM_TFLG1 ; clear Ch3 flag&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; movb #$80,TIM_TCTL2 ; clear Ch3 output line to zero on compare&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; ldd TIM_TCNT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; contents of Timer Count Register-&amp;gt; Accu D&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; addd #$FFFF&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; add 65535 ~168Msec&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; std TIM_TC3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; start OC operation&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;; Should result in pin low in ~168Msec&lt;/P&gt;&lt;P&gt;;*NO SUCSESS!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm still worrying away at it, but do you see anything obvious?&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Robert&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 06 Feb 2018 04:42:48 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/S12X-output-compare/m-p/772362#M15384</guid>
      <dc:creator>roberthiebert</dc:creator>
      <dc:date>2018-02-06T04:42:48Z</dc:date>
    </item>
    <item>
      <title>Re: S12X output compare</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/S12X-output-compare/m-p/2104568#M20491</link>
      <description>&lt;P&gt;Hi Robert, I missed the boat on this question. Not all S12X have a TIM is it only P types? But the XGATE can make Output Compare channels, much like the PWM app. Do not get greedy use TCNT for synchronisation with ECT, 1us bit time resolution is possible depending on XGATE loading.&lt;/P&gt;</description>
      <pubDate>Mon, 26 May 2025 17:14:58 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/S12X-output-compare/m-p/2104568#M20491</guid>
      <dc:creator>Fast</dc:creator>
      <dc:date>2025-05-26T17:14:58Z</dc:date>
    </item>
  </channel>
</rss>

