<?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: Interrupts only working al level 7 in ColdFire/68K Microcontrollers and Processors</title>
    <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Interrupts-only-working-al-level-7/m-p/196557#M8760</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;THANKS A LOT!!!&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I have no idea about this configuration on SR.&lt;/DIV&gt;&lt;DIV&gt;Now is clear for me.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;You're great!!&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 27 Feb 2008 15:54:39 GMT</pubDate>
    <dc:creator>osanz</dc:creator>
    <dc:date>2008-02-27T15:54:39Z</dc:date>
    <item>
      <title>Interrupts only working al level 7</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Interrupts-only-working-al-level-7/m-p/196555#M8758</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Hello again...&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I'm still have a mystery problem with inerrupts on MCF52233. The problem is i only have working inrterrupts if set all of these to IL = 7.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I have tested many different combination of IL and IP below level 7 without success....&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Here is my code:&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV class="msg_source_code"&gt;&lt;DIV class="text_smallest"&gt;Code:&lt;/DIV&gt;&lt;PRE&gt;&lt;STRONG&gt;void KEnableAllInterrupts()&lt;/STRONG&gt;{ DWORD tempStatus; //GLOBAL INTERRUPT ENABLEMCF_INTC0_IMRL = 0xFFFFFFFE;tempStatus = MCF_INTC0_IMRH &amp;amp; 0xFF7FFFFF;&amp;nbsp; //Activada interrupcion PT0;MCF_INTC0_IMRH = tempStatus;&amp;nbsp; tempStatus = MCF_INTC0_IMRL&amp;nbsp; &amp;amp; 0xFFFFDFFF;&amp;nbsp; //Activada interrupciones UART0;MCF_INTC0_IMRL = tempStatus;tempStatus = MCF_INTC0_IMRL&amp;nbsp; &amp;amp; 0xFFFFBFFF;&amp;nbsp; //Activada interrupciones UART1;MCF_INTC0_IMRL = tempStatus;tempStatus = MCF_INTC0_IMRL&amp;nbsp; &amp;amp; 0xFFFF7FFF; //Activada interrupciones UART2;MCF_INTC0_IMRL = tempStatus;//FEC INTERRUPTS -&amp;gt; ETHERNET MODULEStempStatus = MCF_INTC0_IMRL&amp;nbsp; &amp;amp; 0xF7FFFFFF;&amp;nbsp; //Interrupcion 27 FEC RX.MCF_INTC0_IMRL = tempStatus;//RTC ha dado problemasMCF_RTC_RTCCTL&amp;nbsp; = 0x00000000;MCF_RTC_RTCIENR = 0x00000000;&lt;STRONG&gt;}&lt;/STRONG&gt;&lt;STRONG&gt;void IRQ_INIT()&lt;/STRONG&gt;{BYTE IP;BYTE IL;MCF_INTC0_IMRH = 0xFFFFFFFF;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //All interrupts dissabledMCF_INTC0_IMRL = 0xFFFFFFFF;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //All interrupts dissabled//UARTS//MCF_INTC0_ICR13 = 0x3D; //MCF_INTC0_ICR14 = 0x3E; //MCF_INTC0_ICR15 = 0x3F;//PIT0//MCF_INTC0_ICR55 = 0x3C; //UARTSIL = 0x07 &amp;lt;&amp;lt; 3;IP = 0x02;MCF_INTC0_ICR13 = IL | IP; IP = 0x03;MCF_INTC0_ICR14 = IL | IP; IP = 0x02;MCF_INTC0_ICR15 = IL | IP; //PIT0IP = 0x04;MCF_INTC0_ICR55 = IL | IP; //ETHERNETIL = 0x07 &amp;lt;&amp;lt; 3;IP = 0x01;MCF_INTC0_ICR27 = IL | IP; &lt;STRONG&gt;}&lt;/STRONG&gt;&lt;/PRE&gt;&lt;/DIV&gt;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;Does any have a idea about where the problem can be?????&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Maybe the ISR's are wrong? Here are:&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="msg_source_code"&gt;&lt;DIV class="text_smallest"&gt;Code:&lt;/DIV&gt;&lt;PRE&gt;&lt;STRONG&gt;__declspec (interrupt) void PIT0_isr();__declspec (interrupt) void PIT0_isr()&lt;/STRONG&gt;{KDisableAllInterrupts();&amp;nbsp;&amp;nbsp; if( GPROC_1_CN ) GPROC_1_CN--; if( GPROC_2_CN ) GPROC_2_CN--; if( GPROC_3_CN ) GPROC_3_CN--; if( GPROC_4_CN ) GPROC_4_CN--; if( GPROC_5_CN ) GPROC_5_CN--; if( GPROC_6_CN ) GPROC_6_CN--; if( GPROC_7_CN ) GPROC_7_CN--; if( GPROC_8_CN ) GPROC_8_CN--;&amp;nbsp; GTIME_COUNTER++; if( GENERAL_PROPOSE_TIMER ) GENERAL_PROPOSE_TIMER --; //Contador per fer timers senzills&amp;nbsp; MCF_PIT0_PMR = 0x0FFF;KEnableAllInterrupts();}//-----------------------------------------------------------------------------------------------------&lt;STRONG&gt;__declspec (interrupt) void EPORT4_isr();__declspec (interrupt) void EPORT4_isr()&lt;/STRONG&gt;{KDisableAllInterrupts(); MCF_EPORT0_EPFR = 0xFF;KEnableAllInterrupts();}//-----------------------------------------------------------------------------------------------------&lt;STRONG&gt;__declspec (interrupt) void UART0_isr();__declspec (interrupt) void UART0_isr()&lt;/STRONG&gt;{KDisableAllInterrupts(); GRxData[0].GRxChar[GRxData[0].GRxCounter] = uart_getchar(0); if( GRxData[0].GRxCounter &amp;lt; 255 ) GRxData[0].GRxCounter++; else GRxData[0].GRxCounter = 0; GRxData[0].GRxChar[GRxData[0].GRxCounter] = 0; KEnableAllInterrupts();}//-----------------------------------------------------------------------------------------------------BYTE tempChar;&lt;STRONG&gt;__declspec (interrupt) void UART1_isr();__declspec (interrupt) void UART1_isr()&lt;/STRONG&gt;{KDisableAllInterrupts(); tempChar = uart_getchar(1); if( tempChar == ':' )&amp;nbsp; { GRxData[1].GRxCounter = 0; GRxData[1].GTxCounter = 0; } GRxData[1].GRxChar[GRxData[1].GRxCounter++] = tempChar ; GRxData[1].GRxChar[GRxData[1].GRxCounter] = 0; KEnableAllInterrupts(); }//-----------------------------------------------------------------------------------------------------&lt;STRONG&gt;__declspec (interrupt) void UART2_isr();__declspec (interrupt) void UART2_isr()&lt;/STRONG&gt;{KDisableAllInterrupts(); GRxData[2].GRxChar[GRxData[2].GRxCounter++] = uart_getchar(2); GRxData[2].GRxChar[GRxData[2].GRxCounter] = 0; KEnableAllInterrupts();}&lt;STRONG&gt;__declspec (interrupt) void RTC_isr();__declspec (interrupt) void RTC_isr()&lt;/STRONG&gt;{ MCF_RTC_RTCCTL&amp;nbsp; = 0x00000000; MCF_RTC_RTCIENR = 0x00000000; printf("\n\rUNKNOWN_INTERRUPT_isr()");}&lt;STRONG&gt;__declspec (interrupt) void ETHERNET_isr();__declspec (interrupt) void ETHERNET_isr()&lt;/STRONG&gt;{KDisableAllInterrupts(); fec_handler(&amp;amp;fec_nif); Xarxes();KEnableAllInterrupts(); }&lt;/PRE&gt;&lt;/DIV&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you in advance;&lt;/P&gt;&lt;P&gt;WBR&lt;/P&gt;&lt;P&gt;Oscar Sanz&lt;/P&gt;&lt;DIV&gt;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 27 Feb 2008 00:00:30 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Interrupts-only-working-al-level-7/m-p/196555#M8758</guid>
      <dc:creator>osanz</dc:creator>
      <dc:date>2008-02-27T00:00:30Z</dc:date>
    </item>
    <item>
      <title>Re: Interrupts only working al level 7</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Interrupts-only-working-al-level-7/m-p/196556#M8759</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Have you enabled cpu interrupts?&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Like by calling something like splx(0), below:&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&lt;STRONG&gt;// set the current interrupt mask level and return the old one&lt;BR /&gt;int&lt;BR /&gt;splx(int level)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; short oldlevel = 0;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; level = (level &amp;amp; 7) &amp;lt;&amp;lt; 8;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // enable cpu interrupts&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; asm {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; move.w&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sr,d1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; move.w&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; d1,oldlevel&amp;nbsp; // get the old level from the sr&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; and&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #0xf8ff,d1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; or&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; level,d1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // insert the new level into the sr&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; move.w&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; d1,sr&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return (oldlevel &amp;gt;&amp;gt; 8) &amp;amp; 7;&lt;BR /&gt;}&lt;BR /&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 27 Feb 2008 11:13:13 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Interrupts-only-working-al-level-7/m-p/196556#M8759</guid>
      <dc:creator>RichTestardi</dc:creator>
      <dc:date>2008-02-27T11:13:13Z</dc:date>
    </item>
    <item>
      <title>Re: Interrupts only working al level 7</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Interrupts-only-working-al-level-7/m-p/196557#M8760</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;THANKS A LOT!!!&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I have no idea about this configuration on SR.&lt;/DIV&gt;&lt;DIV&gt;Now is clear for me.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;You're great!!&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 27 Feb 2008 15:54:39 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Interrupts-only-working-al-level-7/m-p/196557#M8760</guid>
      <dc:creator>osanz</dc:creator>
      <dc:date>2008-02-27T15:54:39Z</dc:date>
    </item>
  </channel>
</rss>

