<?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 interrupt numbers with MC9S12XEP100 in S12 / MagniV Microcontrollers</title>
    <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/interrupt-numbers-with-MC9S12XEP100/m-p/177639#M6293</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am learning to use the MC9S12XEP100 with a evaluation board. I'm trying to use an interrupt to light two LEDs on the board. Whenever I interrupt the system via port P the microcontroller crashes and debugger says ILLEGAL_BP. I assume that this is due to using wrong interrupt number on the interrupt handler function.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have tried these interrupt handler declarations (the two first ones compile ok):&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new,courier';"&gt;interrupt (IVBR+Vportp) void PP0_ISR(void) {...&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: 'courier new,courier';"&gt;interrupt (IVBR+0x008E) void PP0_ISR(void) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new,courier';"&gt;interrupt (0xFF8E) void PP0_ISR(void)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new,courier';"&gt;interrupt (0xFF00+Vportp) void PP0_ISR(void) {...&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new,courier';"&gt;interrupt (VectorNumber_Vportp) void PP0_ISR(void) {...&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;With the debugger I can see that the I flag in CCR gets set when I interrupt port P, but the program does not go to my interrupt handler. Instead it goes to an endless loop and crashes. I have used the interrupt vector locations table on&lt;/P&gt;&lt;P&gt;&lt;A _jive_internal="true" href="https://community.nxp.com/external-link.jspa?url=http%3A%2F%2Fwww.freescale.com%2Ffiles%2Fmicrocontrollers%2Fdoc%2Fdata_sheet%2FMC9S12XEP100RMV1.pdf" rel="nofollow" target="_blank"&gt;MC9S12XEP100 Reference Manual&lt;/A&gt; &lt;SPAN style="font-family: arial,helvetica,sans-serif; font-size: 2;"&gt;to determine the interrupt number for the handler. But they don't work. Or there is something else wrong in my interrupt handler declarations.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 2;"&gt;Here's the whole code for my program:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new,courier'; font-size: 2;"&gt;#include &amp;lt;hidef.h&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* common defines and macros */&lt;BR /&gt;#include "MC9S12XEP100.h"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* derivative-specific definitions */&lt;BR /&gt;&lt;BR /&gt;void PeriphInit(void) {&lt;BR /&gt;&amp;nbsp; __asm SEI;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; //Configures PB[0..3] as output, PB[4..7] as input&lt;BR /&gt;&amp;nbsp; PORTB = 0x00;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Initialize to 0&lt;BR /&gt;&amp;nbsp; DDRB = 0x0F;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; // Enables pull-ups on PB port to drive the LEDs&lt;BR /&gt;&amp;nbsp;&amp;nbsp; PUCR |= 0x02;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp; //Interrupt module configuration:&lt;BR /&gt;&amp;nbsp; //Set the 8 address window of Interrupt Request Configuration Address Register&lt;BR /&gt;&amp;nbsp; //(INT_CFADDR) to base + 0x8E&lt;BR /&gt;&amp;nbsp; INT_CFADDR = 0x80;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; //base + 0x80&lt;BR /&gt;&amp;nbsp; INT_CFDATA0 = 0x00;&lt;BR /&gt;&amp;nbsp; //base + 0x82&lt;BR /&gt;&amp;nbsp; INT_CFDATA1 = 0x00;&lt;BR /&gt;&amp;nbsp; //base + 0x84&lt;BR /&gt;&amp;nbsp; INT_CFDATA2 = 0x00;&lt;BR /&gt;&amp;nbsp; //base + 0x86&lt;BR /&gt;&amp;nbsp; INT_CFDATA3 = 0x00;&lt;BR /&gt;&amp;nbsp; //base + 0x88&lt;BR /&gt;&amp;nbsp; INT_CFDATA4 = 0x00;&lt;BR /&gt;&amp;nbsp; //base + 0x8A&lt;BR /&gt;&amp;nbsp; INT_CFDATA5 = 0x00;&lt;BR /&gt;&amp;nbsp; //base + 0x8C&lt;BR /&gt;&amp;nbsp; INT_CFDATA6 = 0x00;&lt;BR /&gt;&amp;nbsp; //base + 0x8E, Port P interrupt&lt;BR /&gt;&amp;nbsp; INT_CFDATA7 = 0x06;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; //Configures PP0 as input&lt;BR /&gt;&amp;nbsp; PTP = 0x00;&lt;BR /&gt;&amp;nbsp; DDRP &amp;amp;= 0xFE;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp; //Enables pull-up on PP0&lt;BR /&gt;&amp;nbsp; PERP |= 0x01;&lt;BR /&gt;&amp;nbsp; //Port P pin 0 interrupts on falling edge&lt;BR /&gt;&amp;nbsp; PPSP &amp;amp;= 0xFE;&lt;BR /&gt;&amp;nbsp; //Enables the Port P pin 0 to interrupt&lt;BR /&gt;&amp;nbsp; PIEP |= 0x01;&lt;BR /&gt;&amp;nbsp; //Write 1 to the interrupt flag register to clear the flag&lt;BR /&gt;&amp;nbsp; PIFP = 0x01;&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;&lt;BR /&gt;&amp;nbsp; __asm CLI;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;void main(void) {&lt;BR /&gt;&amp;nbsp; /* put your own code here */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp; PeriphInit();&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; for(;&lt;A href="http://freescale.i.lithium.com/i/smilies/16x16_smiley-wink.gif"&gt;&lt;IMG alt=":smileywink:" class="emoticon emoticon-smileywink" src="http://freescale.i.lithium.com/i/smilies/16x16_smiley-wink.gif" title="Smiley Wink" /&gt;&lt;/A&gt; {&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTB = 0x00;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(!PORTB_PB4)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTB_PB0 = 1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(!PORTB_PB5)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTB_PB1 = 1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(!PORTB_PB6)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTB_PB2 = 1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(!PORTB_PB7)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTB_PB3 = 1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _FEED_COP(); /* feeds the dog */&lt;BR /&gt;&amp;nbsp; } /* loop forever */&lt;BR /&gt;&amp;nbsp; /* please make sure that you never leave main */&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;interrupt (IVBR+0x008E) void PP0_ISR(void) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned int j;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTB_PB1 = 1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTB_PB2 = 1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Wait...&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(j = 0; j &amp;lt;= 2000; j++);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Write 1 to the interrupt flag register to clear the flag&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PIFP = 0x01; &amp;nbsp;&lt;BR /&gt;}&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 2;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 05 Jul 2012 17:35:40 GMT</pubDate>
    <dc:creator>utwig</dc:creator>
    <dc:date>2012-07-05T17:35:40Z</dc:date>
    <item>
      <title>interrupt numbers with MC9S12XEP100</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/interrupt-numbers-with-MC9S12XEP100/m-p/177639#M6293</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am learning to use the MC9S12XEP100 with a evaluation board. I'm trying to use an interrupt to light two LEDs on the board. Whenever I interrupt the system via port P the microcontroller crashes and debugger says ILLEGAL_BP. I assume that this is due to using wrong interrupt number on the interrupt handler function.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have tried these interrupt handler declarations (the two first ones compile ok):&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new,courier';"&gt;interrupt (IVBR+Vportp) void PP0_ISR(void) {...&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: 'courier new,courier';"&gt;interrupt (IVBR+0x008E) void PP0_ISR(void) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new,courier';"&gt;interrupt (0xFF8E) void PP0_ISR(void)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new,courier';"&gt;interrupt (0xFF00+Vportp) void PP0_ISR(void) {...&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new,courier';"&gt;interrupt (VectorNumber_Vportp) void PP0_ISR(void) {...&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;With the debugger I can see that the I flag in CCR gets set when I interrupt port P, but the program does not go to my interrupt handler. Instead it goes to an endless loop and crashes. I have used the interrupt vector locations table on&lt;/P&gt;&lt;P&gt;&lt;A _jive_internal="true" href="https://community.nxp.com/external-link.jspa?url=http%3A%2F%2Fwww.freescale.com%2Ffiles%2Fmicrocontrollers%2Fdoc%2Fdata_sheet%2FMC9S12XEP100RMV1.pdf" rel="nofollow" target="_blank"&gt;MC9S12XEP100 Reference Manual&lt;/A&gt; &lt;SPAN style="font-family: arial,helvetica,sans-serif; font-size: 2;"&gt;to determine the interrupt number for the handler. But they don't work. Or there is something else wrong in my interrupt handler declarations.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 2;"&gt;Here's the whole code for my program:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new,courier'; font-size: 2;"&gt;#include &amp;lt;hidef.h&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* common defines and macros */&lt;BR /&gt;#include "MC9S12XEP100.h"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* derivative-specific definitions */&lt;BR /&gt;&lt;BR /&gt;void PeriphInit(void) {&lt;BR /&gt;&amp;nbsp; __asm SEI;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; //Configures PB[0..3] as output, PB[4..7] as input&lt;BR /&gt;&amp;nbsp; PORTB = 0x00;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Initialize to 0&lt;BR /&gt;&amp;nbsp; DDRB = 0x0F;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; // Enables pull-ups on PB port to drive the LEDs&lt;BR /&gt;&amp;nbsp;&amp;nbsp; PUCR |= 0x02;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp; //Interrupt module configuration:&lt;BR /&gt;&amp;nbsp; //Set the 8 address window of Interrupt Request Configuration Address Register&lt;BR /&gt;&amp;nbsp; //(INT_CFADDR) to base + 0x8E&lt;BR /&gt;&amp;nbsp; INT_CFADDR = 0x80;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; //base + 0x80&lt;BR /&gt;&amp;nbsp; INT_CFDATA0 = 0x00;&lt;BR /&gt;&amp;nbsp; //base + 0x82&lt;BR /&gt;&amp;nbsp; INT_CFDATA1 = 0x00;&lt;BR /&gt;&amp;nbsp; //base + 0x84&lt;BR /&gt;&amp;nbsp; INT_CFDATA2 = 0x00;&lt;BR /&gt;&amp;nbsp; //base + 0x86&lt;BR /&gt;&amp;nbsp; INT_CFDATA3 = 0x00;&lt;BR /&gt;&amp;nbsp; //base + 0x88&lt;BR /&gt;&amp;nbsp; INT_CFDATA4 = 0x00;&lt;BR /&gt;&amp;nbsp; //base + 0x8A&lt;BR /&gt;&amp;nbsp; INT_CFDATA5 = 0x00;&lt;BR /&gt;&amp;nbsp; //base + 0x8C&lt;BR /&gt;&amp;nbsp; INT_CFDATA6 = 0x00;&lt;BR /&gt;&amp;nbsp; //base + 0x8E, Port P interrupt&lt;BR /&gt;&amp;nbsp; INT_CFDATA7 = 0x06;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; //Configures PP0 as input&lt;BR /&gt;&amp;nbsp; PTP = 0x00;&lt;BR /&gt;&amp;nbsp; DDRP &amp;amp;= 0xFE;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp; //Enables pull-up on PP0&lt;BR /&gt;&amp;nbsp; PERP |= 0x01;&lt;BR /&gt;&amp;nbsp; //Port P pin 0 interrupts on falling edge&lt;BR /&gt;&amp;nbsp; PPSP &amp;amp;= 0xFE;&lt;BR /&gt;&amp;nbsp; //Enables the Port P pin 0 to interrupt&lt;BR /&gt;&amp;nbsp; PIEP |= 0x01;&lt;BR /&gt;&amp;nbsp; //Write 1 to the interrupt flag register to clear the flag&lt;BR /&gt;&amp;nbsp; PIFP = 0x01;&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;&lt;BR /&gt;&amp;nbsp; __asm CLI;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;void main(void) {&lt;BR /&gt;&amp;nbsp; /* put your own code here */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp; PeriphInit();&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; for(;&lt;A href="http://freescale.i.lithium.com/i/smilies/16x16_smiley-wink.gif"&gt;&lt;IMG alt=":smileywink:" class="emoticon emoticon-smileywink" src="http://freescale.i.lithium.com/i/smilies/16x16_smiley-wink.gif" title="Smiley Wink" /&gt;&lt;/A&gt; {&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTB = 0x00;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(!PORTB_PB4)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTB_PB0 = 1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(!PORTB_PB5)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTB_PB1 = 1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(!PORTB_PB6)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTB_PB2 = 1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(!PORTB_PB7)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTB_PB3 = 1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _FEED_COP(); /* feeds the dog */&lt;BR /&gt;&amp;nbsp; } /* loop forever */&lt;BR /&gt;&amp;nbsp; /* please make sure that you never leave main */&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;interrupt (IVBR+0x008E) void PP0_ISR(void) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned int j;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTB_PB1 = 1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTB_PB2 = 1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Wait...&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(j = 0; j &amp;lt;= 2000; j++);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Write 1 to the interrupt flag register to clear the flag&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PIFP = 0x01; &amp;nbsp;&lt;BR /&gt;}&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 2;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 05 Jul 2012 17:35:40 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/interrupt-numbers-with-MC9S12XEP100/m-p/177639#M6293</guid>
      <dc:creator>utwig</dc:creator>
      <dc:date>2012-07-05T17:35:40Z</dc:date>
    </item>
    <item>
      <title>Re: interrupt numbers with MC9S12XEP100</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/interrupt-numbers-with-MC9S12XEP100/m-p/177640#M6294</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;IVBR is interrupt vectors base register, you can't use it to specify&amp;nbsp;ISR vector number. You need this number at compile time. IVBR is for run time. This should work&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;interrupt VectorNumber_Vportp void PP0_ISR(void) {...&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;Most likely you are using banked memory model. So you need to force ISR's to nonbanked memory:&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;#pragma CODE_SEG __NEAR_SEG NON_BANKED&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;interrupt VectorNumber_Vportp void PP0_ISR(void)&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;{&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;}&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;#pragma CODE_SEG DEFAULT&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;﻿&lt;/FONT&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 05 Jul 2012 17:58:28 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/interrupt-numbers-with-MC9S12XEP100/m-p/177640#M6294</guid>
      <dc:creator>kef</dc:creator>
      <dc:date>2012-07-05T17:58:28Z</dc:date>
    </item>
    <item>
      <title>Re: interrupt numbers with MC9S12XEP100</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/interrupt-numbers-with-MC9S12XEP100/m-p/177641#M6295</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks a lot! Those #pragmas fixed the code.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 05 Jul 2012 19:01:23 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/interrupt-numbers-with-MC9S12XEP100/m-p/177641#M6295</guid>
      <dc:creator>utwig</dc:creator>
      <dc:date>2012-07-05T19:01:23Z</dc:date>
    </item>
  </channel>
</rss>

