<?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>S12 / MagniV MicrocontrollersのトピックRe: Problem using TC7 to also control TC3</title>
    <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Problem-using-TC7-to-also-control-TC3/m-p/2193619#M20765</link>
    <description>&lt;P&gt;Thanks for your reply but google Ai and I finally figured it out.&amp;nbsp; Here is the correct code:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV class=""&gt;&lt;PRE&gt;&lt;SPAN class=""&gt;; Assume PT3 has been properly set high via GPIO
; and the timer is already enabled via TSCR1:TEN

    ; Step &lt;/SPAN&gt;&lt;SPAN class=""&gt;1&lt;/SPAN&gt;&lt;SPAN class=""&gt;: Disable OC3 to prepare for configuration
    BCLR TIOS, $08

    ; Step &lt;/SPAN&gt;&lt;SPAN class=""&gt;2&lt;/SPAN&gt;&lt;SPAN class=""&gt;: Set TC3 to the immediate past
    LDD TCNT
    SUBD &lt;/SPAN&gt;&lt;SPAN class=""&gt;#$0001&lt;/SPAN&gt;&lt;SPAN class=""&gt;    STD TC3

    ; Step &lt;/SPAN&gt;&lt;SPAN class=""&gt;3&lt;/SPAN&gt;&lt;SPAN class=""&gt;: Configure OC3 to &lt;/SPAN&gt;&lt;SPAN class=""&gt;"no action"&lt;/SPAN&gt;&lt;SPAN class=""&gt; (OM3:OL3 = &lt;/SPAN&gt;&lt;SPAN class=""&gt;00&lt;/SPAN&gt;&lt;SPAN class=""&gt;)
    ; This ensures the pin is not affected when OC takes over.
    BCLR TCTL2, $C0

    ; Step &lt;/SPAN&gt;&lt;SPAN class=""&gt;4&lt;/SPAN&gt;&lt;SPAN class=""&gt;: Re-enable OC3
    BSET TIOS, $08

    ; Step &lt;/SPAN&gt;&lt;SPAN class=""&gt;5&lt;/SPAN&gt;&lt;SPAN class=""&gt;: Wait for the &lt;/SPAN&gt;&lt;SPAN class=""&gt;"past"&lt;/SPAN&gt;&lt;SPAN class=""&gt; compare event to occur and set its flag
zot:
    BRCLR TFLG1, $08, zot

    ; Step &lt;/SPAN&gt;&lt;SPAN class=""&gt;6&lt;/SPAN&gt;&lt;SPAN class=""&gt;: Clear the timer flag for channel &lt;/SPAN&gt;&lt;SPAN class=""&gt;3&lt;/SPAN&gt;&lt;SPAN class=""&gt;    LDAA &lt;/SPAN&gt;&lt;SPAN class=""&gt;#$08&lt;/SPAN&gt;&lt;SPAN class=""&gt;    STAA TFLG1

    ; Step &lt;/SPAN&gt;&lt;SPAN class=""&gt;7&lt;/SPAN&gt;&lt;SPAN class=""&gt;: Set the TC3 for the future compare event
    LDD TCNT
    ADDD Delay
    ADDD &lt;/SPAN&gt;&lt;SPAN class=""&gt;#$0032&lt;/SPAN&gt;&lt;SPAN class=""&gt;    STD TC3

    ; Step &lt;/SPAN&gt;&lt;SPAN class=""&gt;8&lt;/SPAN&gt;&lt;SPAN class=""&gt;: Configure OC3 for the **next** compare to &lt;/SPAN&gt;&lt;SPAN class=""&gt;"clear"&lt;/SPAN&gt;&lt;SPAN class=""&gt; the output (OM3:OL3 = &lt;/SPAN&gt;&lt;SPAN class=""&gt;01&lt;/SPAN&gt;&lt;SPAN class=""&gt;)
    ; The timing is critical here. This must be done AFTER the flag is cleared.
    BSET TCTL2, $40      ; Set OL3 (bit &lt;/SPAN&gt;&lt;SPAN class=""&gt;6&lt;/SPAN&gt;&lt;SPAN class=""&gt;)
    BCLR TCTL2, $80      ; Clear OM3 (bit &lt;/SPAN&gt;&lt;SPAN class=""&gt;7&lt;/SPAN&gt;&lt;SPAN class=""&gt;)&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/DIV&gt;</description>
    <pubDate>Mon, 27 Oct 2025 15:43:05 GMT</pubDate>
    <dc:creator>JohnnyP</dc:creator>
    <dc:date>2025-10-27T15:43:05Z</dc:date>
    <item>
      <title>Problem using TC7 to also control TC3</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Problem-using-TC7-to-also-control-TC3/m-p/2192873#M20759</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;I'm using a 9s12C32 to control spark timing, using TC7 to also control TC3.&lt;/P&gt;&lt;P&gt;OC7D = 88 AND OC7M = 08.&lt;/P&gt;&lt;P&gt;After loading TC7, I ADDD $0032 into TC3, so TC3 should go low 100usec after TC7 ends, but TC3 instantly goes low when TC7 is loaded with the compare value.&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;BSET TIOS, $F8&lt;/P&gt;&lt;P&gt;LDAA&amp;nbsp;#$88&lt;/P&gt;&lt;P&gt;STAA OC7M&lt;/P&gt;&lt;P&gt;LDAA #$08&lt;/P&gt;&lt;P&gt;STAA OC7D&lt;/P&gt;&lt;P&gt;LDD Delay&lt;/P&gt;&lt;P&gt;ADDD #$0002&lt;/P&gt;&lt;P&gt;ADDD TCNT&lt;/P&gt;&lt;P&gt;STD TC7&lt;/P&gt;&lt;P&gt;ADDD #$0032&lt;/P&gt;&lt;P&gt;STD TC3&lt;/P&gt;</description>
      <pubDate>Sat, 25 Oct 2025 15:33:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Problem-using-TC7-to-also-control-TC3/m-p/2192873#M20759</guid>
      <dc:creator>JohnnyP</dc:creator>
      <dc:date>2025-10-25T15:33:55Z</dc:date>
    </item>
    <item>
      <title>Re: Problem using TC7 to also control TC3</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Problem-using-TC7-to-also-control-TC3/m-p/2193517#M20762</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;there is a lot of missing info. It is not possible to investigate issue without full setup and loop.&lt;/P&gt;
&lt;P&gt;However, look at following code. It generates on pulse after delay.... inspired by your code.&lt;/P&gt;
&lt;P&gt;I did it in C+ asm but believe you will understand....&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P&gt;//-----------------------------------------&lt;BR /&gt;unsigned int Delay;&lt;BR /&gt;//-----------------------------------------&lt;BR /&gt;void main(void) &lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp; //-----------------------------------------&lt;BR /&gt;&amp;nbsp; asm&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp; &amp;nbsp; MOVW #$0022, Delay&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; MOVB #$04, TSCR2 // ; prescaler =16, do not reset tim by OC of channel 7&lt;BR /&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;// ; ovf int disable&lt;BR /&gt;&amp;nbsp; &amp;nbsp; MOVB #$AA, TCTL1&amp;nbsp; // ; channels 7,6,5,4 clear on compare&lt;BR /&gt;&amp;nbsp; &amp;nbsp; MOVB #$AA, TCTL2 // ; channels 3,2,1,0 clear on compare &lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; BSET TIOS, $F8&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // ; 7,6,5,4,3 :OC 2,1,0 :IC&lt;BR /&gt;&amp;nbsp; &amp;nbsp; LDAA #$88 &lt;BR /&gt;&amp;nbsp; &amp;nbsp; STAA OC7M&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// ; Xnnn ynnn&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; LDAA #$08 &lt;BR /&gt;&amp;nbsp; &amp;nbsp; STAA OC7D&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // ; 0000 1000 … FORCE TC3 TO 1 ON TC7 OC&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; LDD Delay &lt;BR /&gt;&amp;nbsp; &amp;nbsp; ADDD #$0002 &lt;BR /&gt;&amp;nbsp; &amp;nbsp; ADDD TCNT&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // ; D = TCNT+DELAY+2&lt;BR /&gt;&amp;nbsp; &amp;nbsp; STD TC7&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // ; TC7 = D&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; ADDD #$0032&lt;BR /&gt;&amp;nbsp; &amp;nbsp; STD TC3&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // ; TC3 = D+32&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp; //-----------------------------------------&lt;BR /&gt;&amp;nbsp; TSCR1 = 0xE0;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // enable timer,stop in wait,stop in freeze, NO fast flag clear&lt;BR /&gt;&amp;nbsp; //-----------------------------------------&lt;BR /&gt;&amp;nbsp; for(;;)&lt;BR /&gt;&amp;nbsp; &amp;nbsp; {&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;asm nop;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; }&lt;BR /&gt;&amp;nbsp; &amp;nbsp;//-----------------------------------------&lt;BR /&gt;}&lt;/P&gt;
&lt;P&gt;//***********************************************************************************&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Best regards,&lt;BR /&gt;Ladislav&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 27 Oct 2025 12:32:23 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Problem-using-TC7-to-also-control-TC3/m-p/2193517#M20762</guid>
      <dc:creator>lama</dc:creator>
      <dc:date>2025-10-27T12:32:23Z</dc:date>
    </item>
    <item>
      <title>Re: Problem using TC7 to also control TC3</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Problem-using-TC7-to-also-control-TC3/m-p/2193619#M20765</link>
      <description>&lt;P&gt;Thanks for your reply but google Ai and I finally figured it out.&amp;nbsp; Here is the correct code:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV class=""&gt;&lt;PRE&gt;&lt;SPAN class=""&gt;; Assume PT3 has been properly set high via GPIO
; and the timer is already enabled via TSCR1:TEN

    ; Step &lt;/SPAN&gt;&lt;SPAN class=""&gt;1&lt;/SPAN&gt;&lt;SPAN class=""&gt;: Disable OC3 to prepare for configuration
    BCLR TIOS, $08

    ; Step &lt;/SPAN&gt;&lt;SPAN class=""&gt;2&lt;/SPAN&gt;&lt;SPAN class=""&gt;: Set TC3 to the immediate past
    LDD TCNT
    SUBD &lt;/SPAN&gt;&lt;SPAN class=""&gt;#$0001&lt;/SPAN&gt;&lt;SPAN class=""&gt;    STD TC3

    ; Step &lt;/SPAN&gt;&lt;SPAN class=""&gt;3&lt;/SPAN&gt;&lt;SPAN class=""&gt;: Configure OC3 to &lt;/SPAN&gt;&lt;SPAN class=""&gt;"no action"&lt;/SPAN&gt;&lt;SPAN class=""&gt; (OM3:OL3 = &lt;/SPAN&gt;&lt;SPAN class=""&gt;00&lt;/SPAN&gt;&lt;SPAN class=""&gt;)
    ; This ensures the pin is not affected when OC takes over.
    BCLR TCTL2, $C0

    ; Step &lt;/SPAN&gt;&lt;SPAN class=""&gt;4&lt;/SPAN&gt;&lt;SPAN class=""&gt;: Re-enable OC3
    BSET TIOS, $08

    ; Step &lt;/SPAN&gt;&lt;SPAN class=""&gt;5&lt;/SPAN&gt;&lt;SPAN class=""&gt;: Wait for the &lt;/SPAN&gt;&lt;SPAN class=""&gt;"past"&lt;/SPAN&gt;&lt;SPAN class=""&gt; compare event to occur and set its flag
zot:
    BRCLR TFLG1, $08, zot

    ; Step &lt;/SPAN&gt;&lt;SPAN class=""&gt;6&lt;/SPAN&gt;&lt;SPAN class=""&gt;: Clear the timer flag for channel &lt;/SPAN&gt;&lt;SPAN class=""&gt;3&lt;/SPAN&gt;&lt;SPAN class=""&gt;    LDAA &lt;/SPAN&gt;&lt;SPAN class=""&gt;#$08&lt;/SPAN&gt;&lt;SPAN class=""&gt;    STAA TFLG1

    ; Step &lt;/SPAN&gt;&lt;SPAN class=""&gt;7&lt;/SPAN&gt;&lt;SPAN class=""&gt;: Set the TC3 for the future compare event
    LDD TCNT
    ADDD Delay
    ADDD &lt;/SPAN&gt;&lt;SPAN class=""&gt;#$0032&lt;/SPAN&gt;&lt;SPAN class=""&gt;    STD TC3

    ; Step &lt;/SPAN&gt;&lt;SPAN class=""&gt;8&lt;/SPAN&gt;&lt;SPAN class=""&gt;: Configure OC3 for the **next** compare to &lt;/SPAN&gt;&lt;SPAN class=""&gt;"clear"&lt;/SPAN&gt;&lt;SPAN class=""&gt; the output (OM3:OL3 = &lt;/SPAN&gt;&lt;SPAN class=""&gt;01&lt;/SPAN&gt;&lt;SPAN class=""&gt;)
    ; The timing is critical here. This must be done AFTER the flag is cleared.
    BSET TCTL2, $40      ; Set OL3 (bit &lt;/SPAN&gt;&lt;SPAN class=""&gt;6&lt;/SPAN&gt;&lt;SPAN class=""&gt;)
    BCLR TCTL2, $80      ; Clear OM3 (bit &lt;/SPAN&gt;&lt;SPAN class=""&gt;7&lt;/SPAN&gt;&lt;SPAN class=""&gt;)&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/DIV&gt;</description>
      <pubDate>Mon, 27 Oct 2025 15:43:05 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Problem-using-TC7-to-also-control-TC3/m-p/2193619#M20765</guid>
      <dc:creator>JohnnyP</dc:creator>
      <dc:date>2025-10-27T15:43:05Z</dc:date>
    </item>
    <item>
      <title>Re: Problem using TC7 to also control TC3</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Problem-using-TC7-to-also-control-TC3/m-p/2193624#M20766</link>
      <description>&lt;P&gt;Oops, please edit my last post, as that doesn't really work.&amp;nbsp; It only works on every other spark event.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 27 Oct 2025 15:49:15 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Problem-using-TC7-to-also-control-TC3/m-p/2193624#M20766</guid>
      <dc:creator>JohnnyP</dc:creator>
      <dc:date>2025-10-27T15:49:15Z</dc:date>
    </item>
  </channel>
</rss>

