<?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>ColdFire/68K Microcontrollers and ProcessorsのトピックRe: MCF5208 interrupt problem</title>
    <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF5208-interrupt-problem/m-p/131396#M901</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Hi&lt;BR /&gt;&lt;BR /&gt;I don't have a 5208 board handy, but I got curious and tried your code on a Freescale M5329EVB. (The 5329 has a similar PIT and interrupt controller, so I just had to modify the code a little). Guess what - it all works OK.&lt;BR /&gt;&lt;BR /&gt;Maybe the PIT is nothing to do with the problem. If you're enabling interrupts, it's possible that an interrupt related to something else is occuring and killing you before the PIT handler runs.&lt;BR /&gt;&lt;BR /&gt;To test this theory, you could try changing the code so that only the PIT interrupt is enabled:&lt;BR /&gt;&lt;BR /&gt;MCF_INTC_IMRH = 0xffffffff;&lt;BR /&gt;MCF_INTC_IMRL = ~MCF5208_INTC_IMRL_INT_MASK4;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 27 Sep 2006 18:09:17 GMT</pubDate>
    <dc:creator>SimonMarsden_de</dc:creator>
    <dc:date>2006-09-27T18:09:17Z</dc:date>
    <item>
      <title>MCF5208 interrupt problem</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF5208-interrupt-problem/m-p/131393#M898</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Hi,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;my problem is the following: I can not handle any interrupt! In my example I just want to handle the interrupt with timer 0.&lt;/DIV&gt;&lt;DIV&gt;Here is the code:&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;void main(void)&lt;BR /&gt;{&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mcf5xxx_irq_disable();&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mcf5xxx_set_handler(68, PIT0_handler);&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MCF5208_INTC_ICR(4) =&amp;nbsp;MCF5208_INTC_ICR_IL(2);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MCF5208_INTC_IMRL&amp;nbsp;&amp;amp;=&amp;nbsp;~(0&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|MCF5208_INTC_IMRL_INT_MASK4);&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MCF5208_PIT0_PMR = &amp;nbsp;40000;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 40MHz/40000 = 1kHz&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MCF5208_PIT0_PCSR = 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;| MCF5208_PIT_PCSR_EN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Bit 0: PIT enable&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;| MCF5208_PIT_PCSR_RLD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Bit 1: Counter reloaded from PMRn on count of 0x0000&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;| MCF5208_PIT_PCSR_PIE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Bit 3: PIT interrupt enable&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;| MCF5208_PIT_PCSR_PRE(1);&amp;nbsp;// Bit 8-11: Prescaler 2 (80MHz/2=40MHz)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mcf5xxx_irq_enable();&lt;BR /&gt;}&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;__interrupt__ void PIT0_handler(void)&lt;BR /&gt;{&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;printf("Interrupt occured");&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fflush(stdout);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MCF5208_PIT0_PCSR =&amp;nbsp;MCF5208_PIT0_PCSR&lt;/DIV&gt;&lt;DIV&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;| MCF5208_PIT_PCSR_PIF;&lt;BR /&gt;}&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV&gt;But what happens is an illegal instruction error. If I disable the "mcf5xxx_irq_enable()" the flag is on when the counter reaches 0x0000.&lt;/DIV&gt;&lt;DIV&gt;Does someone tell me what is wrong?&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Mr. Ushuaia&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 26 Sep 2006 17:05:17 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF5208-interrupt-problem/m-p/131393#M898</guid>
      <dc:creator>Mr_Ushuaia</dc:creator>
      <dc:date>2006-09-26T17:05:17Z</dc:date>
    </item>
    <item>
      <title>Re: MCF5208 interrupt problem</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF5208-interrupt-problem/m-p/131394#M899</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;I'm only guessing, but could the problem be caused because the main() routine has terminated by the time the interrupt occurs?&lt;BR /&gt;&lt;BR /&gt;You could investigate by adding something like:&lt;BR /&gt;&lt;BR /&gt;while (1)&lt;BR /&gt;; // Wait forever&lt;BR /&gt;&lt;BR /&gt;...to the end of the main function. (Of course, in real code you'll want to do something more useful, or use STOP, or similar).&lt;BR /&gt;&lt;BR /&gt;Of course, your example may just be a simplified part of a larger bit of code, in which case ignore me :smileyhappy:&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 26 Sep 2006 22:35:35 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF5208-interrupt-problem/m-p/131394#M899</guid>
      <dc:creator>SimonMarsden_de</dc:creator>
      <dc:date>2006-09-26T22:35:35Z</dc:date>
    </item>
    <item>
      <title>Re: MCF5208 interrupt problem</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF5208-interrupt-problem/m-p/131395#M900</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Hi Simon Marsden&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Thank you for your quick response. As you guessed my example is a simplified part of a larger bit of code. Anyway if I copy exactly this code and add "while(1)" at the end of the main function I still have the same problem.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Mr. Ushuaia&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 27 Sep 2006 12:35:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF5208-interrupt-problem/m-p/131395#M900</guid>
      <dc:creator>Mr_Ushuaia</dc:creator>
      <dc:date>2006-09-27T12:35:57Z</dc:date>
    </item>
    <item>
      <title>Re: MCF5208 interrupt problem</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF5208-interrupt-problem/m-p/131396#M901</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Hi&lt;BR /&gt;&lt;BR /&gt;I don't have a 5208 board handy, but I got curious and tried your code on a Freescale M5329EVB. (The 5329 has a similar PIT and interrupt controller, so I just had to modify the code a little). Guess what - it all works OK.&lt;BR /&gt;&lt;BR /&gt;Maybe the PIT is nothing to do with the problem. If you're enabling interrupts, it's possible that an interrupt related to something else is occuring and killing you before the PIT handler runs.&lt;BR /&gt;&lt;BR /&gt;To test this theory, you could try changing the code so that only the PIT interrupt is enabled:&lt;BR /&gt;&lt;BR /&gt;MCF_INTC_IMRH = 0xffffffff;&lt;BR /&gt;MCF_INTC_IMRL = ~MCF5208_INTC_IMRL_INT_MASK4;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 27 Sep 2006 18:09:17 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF5208-interrupt-problem/m-p/131396#M901</guid>
      <dc:creator>SimonMarsden_de</dc:creator>
      <dc:date>2006-09-27T18:09:17Z</dc:date>
    </item>
    <item>
      <title>Re: MCF5208 interrupt problem</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF5208-interrupt-problem/m-p/131397#M902</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Hello,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;my tip for you is: have you insert the interrupt in the vector table?&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I mean, i work with the 52235 and I have similar problem, remember that when you add some interrupt function you have to define it in the vector table (I think it is in the *vectors.s file).&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Best regards&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 28 Sep 2006 15:24:19 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF5208-interrupt-problem/m-p/131397#M902</guid>
      <dc:creator>p_vagnoni</dc:creator>
      <dc:date>2006-09-28T15:24:19Z</dc:date>
    </item>
    <item>
      <title>Re: MCF5208 interrupt problem</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF5208-interrupt-problem/m-p/131398#M903</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Hi&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;thank you everyone for your help. But it still does not work. In fact, when I redo a project and when I compile a simple main (print ot the screen "hello world")&amp;nbsp;that works. But when I want to compile the "Coldfire Support file" in which there is the vectors.s file, I cannot! I get this message:&lt;/DIV&gt;&lt;DIV&gt;. Link error: Undefined: "mcf5xxx_exception_handler"&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;Referenced from "asm_set_ipl" in "mcf5xxx_lo.s"&lt;/DIV&gt;&lt;DIV&gt;. Link failed&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;It seems it do not recognize this function. But why? This is an integrated function to handle exceptions!&lt;/DIV&gt;&lt;DIV&gt;I did not remember that when I started my program I used tricks in order to compile without problems.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Maybe someone met this problem. I wrote to my handler but I did not get answer. Any idea?&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Mr. Ushuaia&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Oct 2006 13:26:34 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF5208-interrupt-problem/m-p/131398#M903</guid>
      <dc:creator>Mr_Ushuaia</dc:creator>
      <dc:date>2006-10-04T13:26:34Z</dc:date>
    </item>
    <item>
      <title>Re: MCF5208 interrupt problem</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF5208-interrupt-problem/m-p/131399#M904</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;DIV&gt;Hi,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;maybe you have not include the file "mcf5xxx.c": Infact in this file there is a definition of this function that is called in "mcf5xxx_lo.s" as the error message says you!!&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Bye,&lt;/DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Oct 2006 15:20:07 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF5208-interrupt-problem/m-p/131399#M904</guid>
      <dc:creator>p_vagnoni</dc:creator>
      <dc:date>2006-10-04T15:20:07Z</dc:date>
    </item>
  </channel>
</rss>

