<?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 newbie, trouble with RTI in S12 / MagniV Microcontrollers</title>
    <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/newbie-trouble-with-RTI/m-p/125330#M301</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN style=": ; FONT-FAMILY: Arial; color: #ff0000; font-size: 2; FONT-SIZE: 9pt;"&gt;This message contains an entire topic ported from a separate forum. The original message and all replies are in this single message. We have seeded this new forum with selected information that we expect will be of value to you as you search for answers to your questions.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;&lt;STRONG style=": ; font-size: 2;"&gt;Date: Mon Mar 7, 2005 7:56pm&lt;/STRONG&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;STRONG style=": ; font-size: 2;"&gt;Subject: newbie, trouble with RTI&lt;/STRONG&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; using mc9312c32 on techarts 12max nanocore board. compiling in&lt;BR /&gt;codewarrion, writing to chip with ubug12 serial comm. I am trying to&lt;BR /&gt;use a real time interrupt to sample 256 data points for fft. The&lt;BR /&gt;relevent code follows - i have omitted most of my program as it is&lt;BR /&gt;getting quite lengthy.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-size: 2;"&gt;GETDATA:&lt;BR /&gt;movb #$00, DPOINT&lt;BR /&gt; ldx #DATA&lt;BR /&gt; movb #%01110000, ATDCTL&lt;BR /&gt; movb #%00110000, RTICTL&lt;BR /&gt; bset CRGFLG, #%10000000&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-size: 2;"&gt;DLOOP:&lt;BR /&gt;ldaa DPOINT&lt;BR /&gt; cmpa #$FF&lt;BR /&gt; beq FFT&lt;BR /&gt; bra DLOOP&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-size: 2;"&gt;RTI_SUB:&lt;BR /&gt;ldaa ATDDR1H&lt;BR /&gt; staa 1,x+&lt;BR /&gt; inc DPOINT&lt;BR /&gt; bclr CRGFLG, #%10000000&lt;BR /&gt;rti&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-size: 2;"&gt;; Interrupt Vectors&lt;BR /&gt;Org Vreset&lt;BR /&gt;fdb ResetFunc&lt;BR /&gt;ORG Vrti&lt;BR /&gt;fdb RTI_SUB&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-size: 2;"&gt;rest of program runs fine - as soon as i enter 'GETDATA:' controller&lt;BR /&gt;seems to lock up - any thoughts?&lt;BR /&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-size: 2;"&gt;&lt;STRONG&gt;Date: Mon Mar 7, 2005 9:46pm&amp;nbsp;&lt;BR /&gt;&lt;/STRONG&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; In your GETDATA: label you incorrectly attempt to start the RTI by&lt;BR /&gt; setting bit 7 of CRGFLG hi. It believe you actually need to set bit&lt;BR /&gt; 7 of CRGINT hi to kick start the RTI.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-size: 2;"&gt;At the end of your RTI interrupt you need to write 128 to CRGFLG to&lt;BR /&gt; reset the interrupt flag. You are now clearing that bit.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt; &lt;SPAN style="font-size: 2;"&gt;&lt;STRONG&gt;Date: Mon Mar 7, 2005 10:11pm&amp;nbsp;&lt;BR /&gt;&lt;/STRONG&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I appreciate your review - i have corrected these mistakes - however,&lt;BR /&gt;my code still seems to get stuck in the DLOOP: without any interrupts&lt;BR /&gt;occuring, any ideas?&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt; &lt;SPAN style="font-size: 2;"&gt;&lt;STRONG&gt;Date: Mon Mar 7, 2005 10:33pm&lt;/STRONG&gt;&lt;BR /&gt; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Sorry, was just looking a RTI issues before.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-size: 2;"&gt;In your RTI interrupt it looks like x is free in increment far&lt;BR /&gt; outside your intended data structure, mowing down everything in its&lt;BR /&gt; path. Remember that the RTI never stops, even though other parts of&lt;BR /&gt; your software stop gathering data. DLOOP stays inside the 256&lt;BR /&gt; element range because it's a byte and rolls around inside your data&lt;BR /&gt; structure, but x is 16 bits. You need to rethink the relationship&lt;BR /&gt; between the RTI and your "foreground" routines.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2;"&gt;&lt;STRONG&gt;Date: Tue Mar 8, 2005 10:31am&lt;/STRONG&gt;&lt;BR /&gt; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; this makes sense - that's why my first instruction upon leaving DLOOP&lt;BR /&gt; (which i hadn't shown previously) is to disable RTI.&lt;BR /&gt;thanks everyone for the help - i'll see if i can get this going&lt;BR /&gt; today....&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2;"&gt;&lt;STRONG&gt;Date: Wed Mar 9, 2005 9:57pm&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-size: 2;"&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Real time interrupts are working great now- thanks to all for the&lt;BR /&gt;suggestions and the help!&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2;"&gt;&lt;STRONG&gt;Date: Mon Mar 7, 2005 11:30pm&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;gt;&amp;gt; &amp;gt; movb #%00110000, RTICTL&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-size: 2;"&gt;You didn't enable RTI. Bits 6:4 and 3:0 of RTICTL should be non zero&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 30 Jan 2006 01:48:39 GMT</pubDate>
    <dc:creator>Dietrich</dc:creator>
    <dc:date>2006-01-30T01:48:39Z</dc:date>
    <item>
      <title>newbie, trouble with RTI</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/newbie-trouble-with-RTI/m-p/125330#M301</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN style=": ; FONT-FAMILY: Arial; color: #ff0000; font-size: 2; FONT-SIZE: 9pt;"&gt;This message contains an entire topic ported from a separate forum. The original message and all replies are in this single message. We have seeded this new forum with selected information that we expect will be of value to you as you search for answers to your questions.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;&lt;STRONG style=": ; font-size: 2;"&gt;Date: Mon Mar 7, 2005 7:56pm&lt;/STRONG&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;STRONG style=": ; font-size: 2;"&gt;Subject: newbie, trouble with RTI&lt;/STRONG&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; using mc9312c32 on techarts 12max nanocore board. compiling in&lt;BR /&gt;codewarrion, writing to chip with ubug12 serial comm. I am trying to&lt;BR /&gt;use a real time interrupt to sample 256 data points for fft. The&lt;BR /&gt;relevent code follows - i have omitted most of my program as it is&lt;BR /&gt;getting quite lengthy.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-size: 2;"&gt;GETDATA:&lt;BR /&gt;movb #$00, DPOINT&lt;BR /&gt; ldx #DATA&lt;BR /&gt; movb #%01110000, ATDCTL&lt;BR /&gt; movb #%00110000, RTICTL&lt;BR /&gt; bset CRGFLG, #%10000000&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-size: 2;"&gt;DLOOP:&lt;BR /&gt;ldaa DPOINT&lt;BR /&gt; cmpa #$FF&lt;BR /&gt; beq FFT&lt;BR /&gt; bra DLOOP&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-size: 2;"&gt;RTI_SUB:&lt;BR /&gt;ldaa ATDDR1H&lt;BR /&gt; staa 1,x+&lt;BR /&gt; inc DPOINT&lt;BR /&gt; bclr CRGFLG, #%10000000&lt;BR /&gt;rti&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-size: 2;"&gt;; Interrupt Vectors&lt;BR /&gt;Org Vreset&lt;BR /&gt;fdb ResetFunc&lt;BR /&gt;ORG Vrti&lt;BR /&gt;fdb RTI_SUB&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-size: 2;"&gt;rest of program runs fine - as soon as i enter 'GETDATA:' controller&lt;BR /&gt;seems to lock up - any thoughts?&lt;BR /&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-size: 2;"&gt;&lt;STRONG&gt;Date: Mon Mar 7, 2005 9:46pm&amp;nbsp;&lt;BR /&gt;&lt;/STRONG&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; In your GETDATA: label you incorrectly attempt to start the RTI by&lt;BR /&gt; setting bit 7 of CRGFLG hi. It believe you actually need to set bit&lt;BR /&gt; 7 of CRGINT hi to kick start the RTI.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-size: 2;"&gt;At the end of your RTI interrupt you need to write 128 to CRGFLG to&lt;BR /&gt; reset the interrupt flag. You are now clearing that bit.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt; &lt;SPAN style="font-size: 2;"&gt;&lt;STRONG&gt;Date: Mon Mar 7, 2005 10:11pm&amp;nbsp;&lt;BR /&gt;&lt;/STRONG&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I appreciate your review - i have corrected these mistakes - however,&lt;BR /&gt;my code still seems to get stuck in the DLOOP: without any interrupts&lt;BR /&gt;occuring, any ideas?&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt; &lt;SPAN style="font-size: 2;"&gt;&lt;STRONG&gt;Date: Mon Mar 7, 2005 10:33pm&lt;/STRONG&gt;&lt;BR /&gt; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Sorry, was just looking a RTI issues before.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-size: 2;"&gt;In your RTI interrupt it looks like x is free in increment far&lt;BR /&gt; outside your intended data structure, mowing down everything in its&lt;BR /&gt; path. Remember that the RTI never stops, even though other parts of&lt;BR /&gt; your software stop gathering data. DLOOP stays inside the 256&lt;BR /&gt; element range because it's a byte and rolls around inside your data&lt;BR /&gt; structure, but x is 16 bits. You need to rethink the relationship&lt;BR /&gt; between the RTI and your "foreground" routines.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2;"&gt;&lt;STRONG&gt;Date: Tue Mar 8, 2005 10:31am&lt;/STRONG&gt;&lt;BR /&gt; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; this makes sense - that's why my first instruction upon leaving DLOOP&lt;BR /&gt; (which i hadn't shown previously) is to disable RTI.&lt;BR /&gt;thanks everyone for the help - i'll see if i can get this going&lt;BR /&gt; today....&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2;"&gt;&lt;STRONG&gt;Date: Wed Mar 9, 2005 9:57pm&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-size: 2;"&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Real time interrupts are working great now- thanks to all for the&lt;BR /&gt;suggestions and the help!&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2;"&gt;&lt;STRONG&gt;Date: Mon Mar 7, 2005 11:30pm&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;gt;&amp;gt; &amp;gt; movb #%00110000, RTICTL&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-size: 2;"&gt;You didn't enable RTI. Bits 6:4 and 3:0 of RTICTL should be non zero&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 30 Jan 2006 01:48:39 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/newbie-trouble-with-RTI/m-p/125330#M301</guid>
      <dc:creator>Dietrich</dc:creator>
      <dc:date>2006-01-30T01:48:39Z</dc:date>
    </item>
  </channel>
</rss>

