<?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>Classic/Legacy CodeWarrior中的主题 Re: Need some code samples of nested interrupts for MC68HC908AZ60A</title>
    <link>https://community.nxp.com/t5/Classic-Legacy-CodeWarrior/Need-some-code-samples-of-nested-interrupts-for-MC68HC908AZ60A/m-p/136703#M960</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;Hi, Naveen:&lt;BR /&gt;&lt;BR /&gt;Sorry, I don't have any code examples that I can share, but I can offer a few tips. There are different situations where nesting interrupts are necessary, and I don't know what your situation is, so a code example may not be useful.&lt;BR /&gt;&lt;BR /&gt;As Tom implied, nested interrupts can get messy in the '08 family, since the CPU has no interrupt priority level. On the '08s, interrupts are either globally enabled or globally disabled. The interrupt priority mechanism in the '08 family means nothing in this situation, as it only determines which interrupt is serviced when more then one occur at the same time. You can enable and disable interrupts individually for each device, but that can get very time consuming and error-prone when you try to do that within other interrupt service routines.&lt;BR /&gt;&lt;BR /&gt;In my experience, there are two general situations where you need to nest interrupts. The first is where you have a single ISR that takes so long that you wish all other interrupts to preempt it. The second is where you have a single interrupt that is so critical that you wish it to preempt all other interrupts. All other situations are beyond the capability of my meager brain. Is your situation one of these two?&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;The first situation, where you have a single ISR that takes too long, is simpler than the second. Here, you simply enable interrupts globally within the ISR that you wish to allow to be preempted, typically near the beginning of the ISR. There is no need to disable interrupts again later, as the hardware will handle that. This will allow other interrupts to preempt this one ISR, but only one additional interrupt at a time. You will need an additional 5 bytes of stack space for the additional nested interrupt.&lt;BR /&gt;&lt;BR /&gt;This first situation can be avoided if the processing that is making the ISR too long can be rolled out of the ISR and queued to run as a separate task by the ISR. This is how I would handle this situation today, but that is a topic for a separate thread.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;The second situation, where you have a single critical ISR, is much uglier, spelled with a capital ug. Unfortunately, it is also more common, and the '08 family has no elegant way to handle it. The best solution is to avoid it by making all other ISRs as short as possible.&lt;BR /&gt;&lt;BR /&gt;If it must be done, it could be done by globally enabling interrupts in all ISR except for the critical one. But this means that any interrupt can preempt any other, with the exception of the critical one, so shared resources must be carefully managed and critical sections identified and controlled. You must also insure that an interrupt can't re-occur while its ISR is still active, recursively re-executing the ISR and crashing your system. Also, enough stack space needs to be allocated for the potential situation where every ISR is active (5 bytes multiplied by the total number of possible interrupts).&lt;BR /&gt;&lt;BR /&gt;As I eluded to earlier, you can prevent unnecessary nesting by disabling and later re-enabling individual interrupts prior to enabling interrupts globally within an ISR, but that would add some serious overhead within each ISR. If the point was to enhance the response to interrupts, then this approach could be counter-productive.&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sun, 17 Jun 2007 04:12:18 GMT</pubDate>
    <dc:creator>rocco</dc:creator>
    <dc:date>2007-06-17T04:12:18Z</dc:date>
    <item>
      <title>Need some code samples of nested interrupts for MC68HC908AZ60A</title>
      <link>https://community.nxp.com/t5/Classic-Legacy-CodeWarrior/Need-some-code-samples-of-nested-interrupts-for-MC68HC908AZ60A/m-p/136701#M958</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi all,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Could any one provide some code samples of nested interrupts for MC68HC908AZ60A microcontroller.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks and regards&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Naveen&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 13 Jun 2007 16:57:41 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Classic-Legacy-CodeWarrior/Need-some-code-samples-of-nested-interrupts-for-MC68HC908AZ60A/m-p/136701#M958</guid>
      <dc:creator>Naveen</dc:creator>
      <dc:date>2007-06-13T16:57:41Z</dc:date>
    </item>
    <item>
      <title>Re: Need some code samples of nested interrupts for MC68HC908AZ60A</title>
      <link>https://community.nxp.com/t5/Classic-Legacy-CodeWarrior/Need-some-code-samples-of-nested-interrupts-for-MC68HC908AZ60A/m-p/136702#M959</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I couldn't find any application note that expressly mentioned nested interrupts, but I've attached two application notes that implement several interrupt routines simultaneously for a derivative MCU. The other thing I found out in my search is that you really have to watch your stack if you're going to nest interrupts. HTH.&lt;BR /&gt;&lt;BR /&gt;---Tom&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.freescale.com/files/microcontrollers/doc/app_note/AN2687.pdf" rel="nofollow" target="_self"&gt;AN2687.pdf&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.freescale.com/files/microcontrollers/doc/app_note/AN2637.pdf" rel="nofollow" target="_self"&gt;AN2637.pdf&lt;/A&gt;&lt;/P&gt;&lt;DIV class="message-edit-history"&gt;&lt;SPAN class="edit-author"&gt;Message Edited by t.dowe on&lt;/SPAN&gt; &lt;SPAN class="local-date"&gt;2009-09-16&lt;/SPAN&gt; &lt;SPAN class="local-time"&gt;10:33 AM&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 13 Jun 2007 21:34:30 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Classic-Legacy-CodeWarrior/Need-some-code-samples-of-nested-interrupts-for-MC68HC908AZ60A/m-p/136702#M959</guid>
      <dc:creator>J2MEJediMaster</dc:creator>
      <dc:date>2007-06-13T21:34:30Z</dc:date>
    </item>
    <item>
      <title>Re: Need some code samples of nested interrupts for MC68HC908AZ60A</title>
      <link>https://community.nxp.com/t5/Classic-Legacy-CodeWarrior/Need-some-code-samples-of-nested-interrupts-for-MC68HC908AZ60A/m-p/136703#M960</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;Hi, Naveen:&lt;BR /&gt;&lt;BR /&gt;Sorry, I don't have any code examples that I can share, but I can offer a few tips. There are different situations where nesting interrupts are necessary, and I don't know what your situation is, so a code example may not be useful.&lt;BR /&gt;&lt;BR /&gt;As Tom implied, nested interrupts can get messy in the '08 family, since the CPU has no interrupt priority level. On the '08s, interrupts are either globally enabled or globally disabled. The interrupt priority mechanism in the '08 family means nothing in this situation, as it only determines which interrupt is serviced when more then one occur at the same time. You can enable and disable interrupts individually for each device, but that can get very time consuming and error-prone when you try to do that within other interrupt service routines.&lt;BR /&gt;&lt;BR /&gt;In my experience, there are two general situations where you need to nest interrupts. The first is where you have a single ISR that takes so long that you wish all other interrupts to preempt it. The second is where you have a single interrupt that is so critical that you wish it to preempt all other interrupts. All other situations are beyond the capability of my meager brain. Is your situation one of these two?&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;The first situation, where you have a single ISR that takes too long, is simpler than the second. Here, you simply enable interrupts globally within the ISR that you wish to allow to be preempted, typically near the beginning of the ISR. There is no need to disable interrupts again later, as the hardware will handle that. This will allow other interrupts to preempt this one ISR, but only one additional interrupt at a time. You will need an additional 5 bytes of stack space for the additional nested interrupt.&lt;BR /&gt;&lt;BR /&gt;This first situation can be avoided if the processing that is making the ISR too long can be rolled out of the ISR and queued to run as a separate task by the ISR. This is how I would handle this situation today, but that is a topic for a separate thread.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;The second situation, where you have a single critical ISR, is much uglier, spelled with a capital ug. Unfortunately, it is also more common, and the '08 family has no elegant way to handle it. The best solution is to avoid it by making all other ISRs as short as possible.&lt;BR /&gt;&lt;BR /&gt;If it must be done, it could be done by globally enabling interrupts in all ISR except for the critical one. But this means that any interrupt can preempt any other, with the exception of the critical one, so shared resources must be carefully managed and critical sections identified and controlled. You must also insure that an interrupt can't re-occur while its ISR is still active, recursively re-executing the ISR and crashing your system. Also, enough stack space needs to be allocated for the potential situation where every ISR is active (5 bytes multiplied by the total number of possible interrupts).&lt;BR /&gt;&lt;BR /&gt;As I eluded to earlier, you can prevent unnecessary nesting by disabling and later re-enabling individual interrupts prior to enabling interrupts globally within an ISR, but that would add some serious overhead within each ISR. If the point was to enhance the response to interrupts, then this approach could be counter-productive.&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 17 Jun 2007 04:12:18 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Classic-Legacy-CodeWarrior/Need-some-code-samples-of-nested-interrupts-for-MC68HC908AZ60A/m-p/136703#M960</guid>
      <dc:creator>rocco</dc:creator>
      <dc:date>2007-06-17T04:12:18Z</dc:date>
    </item>
    <item>
      <title>Re: Need some code samples of nested interrupts for MC68HC908AZ60A</title>
      <link>https://community.nxp.com/t5/Classic-Legacy-CodeWarrior/Need-some-code-samples-of-nested-interrupts-for-MC68HC908AZ60A/m-p/136704#M961</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Hello,&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Further to Rocco's valuable comments, I got to thinking about the single critical ISR case, and considered just how much overhead would be necessary for the disabling and re-enabling of non-critical interrupts within each non-critical ISRs.&amp;nbsp; It occurred to me that&amp;nbsp;often HC908 and HCS08 applications&amp;nbsp;do not require to have very many operational interrupts, and the overhead might not be too severe if there were perhaps, say only 2 or 3 non-critical interrupt sources.&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;The following is my perception of what a non-critical ISR might&amp;nbsp;need to do -&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;ISR_PROC:&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PSHH&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; Clear current interrupt flag - normal requirement&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; Disable current interrupt to prevent recursion,&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MOV #val,CTRL_REG&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;; 4 cycles&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; For each other non-critical interrupt:&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; Store current control register value to stack,&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LDA CTRL_REG&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;; 3&amp;nbsp;cycles&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PSHA&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;; 2 cycles&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; Disable non-critical interrupt,&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MOV #val,CTRL_REG&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;; 4 cycles&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CLI&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;; Enable interrupts, 2 cycles&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; ISR processing code&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SEI&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;; Disable interrupts, 2 cycles&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; Re-enable current interrupt,&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MOV #val,CTRL_REG&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;; 4 cycles&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; For each other non-critical interrupt:&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; Restore previous register value,&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PULA&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;2 cycles&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STA CTRL_REG&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; 3 cycles&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PULH&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RTI&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&lt;FONT face="Arial"&gt;For example, for one critical interrupt and three non-critical interrupts, the following&amp;nbsp;&lt;U&gt;additional&lt;/U&gt; overheads would be necessary:&lt;/FONT&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&lt;FONT face="Arial"&gt;Prior to enabling&amp;nbsp;interrupts within the ISR, 24 cycles.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&lt;FONT face="Arial"&gt;After interrupts are again disabled, and prior to exit from ISR, 14 cycles.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;To keep these additional overheads in perspective, the "normal" overheads for an ISR, not including the ISR processing code, would amount to about 26 cycles.&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&lt;/FONT&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;ISR_PROC:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;; 9 cycles for entry&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PSHH&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; 2 cycles&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; Clear current interrupt flag, assume 6 cycles&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; ISR processing code&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PULH&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;; 2 cycles&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RTI&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; 7 cycles&lt;/FONT&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Regards,&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Mac&lt;/FONT&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 17 Jun 2007 13:13:29 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Classic-Legacy-CodeWarrior/Need-some-code-samples-of-nested-interrupts-for-MC68HC908AZ60A/m-p/136704#M961</guid>
      <dc:creator>bigmac</dc:creator>
      <dc:date>2007-06-17T13:13:29Z</dc:date>
    </item>
  </channel>
</rss>

