# Rabbit 3000 interrupt suppression problem

**URL:** <https://forums.digi.com/t/rabbit-3000-interrupt-suppression-problem/11099>\
**Category:** Rabbit\
**Created:** [May 5, 2009, 7:30am UTC](https://forums.digi.com/t/rabbit-3000-interrupt-suppression-problem/11099 "2009-05-05T07:30:17Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![User1165](https://avatars.discourse-cdn.com/v4/letter/u/e9c0ed/32.png) [@User1165](https://forums.digi.com/u/User1165)\
**Post date:** [May 5, 2009, 7:30am UTC](https://forums.digi.com/t/rabbit-3000-interrupt-suppression-problem/11099/1 "2009-05-05T07:30:17Z")

</div>

Hello all,

I am working on a project in which I am using RCM3200 module (Rabbit 3000).I have used two external interrupt (one with priority 3 and another with priority 2) along with one timer interrupt (software interrupt) with a priority 1.  
When I am running the program it randomly suppresses the high priority interrupt (external interrupt with priority 2) and do not execute its ISR, which ultimately affects final results.

Can anyone help me to understand the problem and and its proposed solution or work around. I could not find and help from technical documents available on rabbit sites.

It will be very helpful if I get some information from Rabbit semiconductor guys for the same.

Thanks & Regards  
Ketkee Thakar  
🙂

---

<div class="post-metadata">

**Author:** ![kobuseng](https://avatars.discourse-cdn.com/v4/letter/k/f0a364/32.png) [@kobuseng](https://forums.digi.com/u/kobuseng)\
**Post date:** [May 5, 2009, 8:57am UTC](https://forums.digi.com/t/rabbit-3000-interrupt-suppression-problem/11099/2 "2009-05-05T08:57:12Z")

</div>

Your priority 2 interrupt is supressed by your priority 3 interrupt? From the amount of information you have given no more can be guessed.

Not that I want to sound too critical, but an application that relies on interrupt priorities usually indicate a poorly written interrupt routine (unless you are working at the processors performance limits).

Is your ISR written minimalisticly, in other words, does your ISR only detect which interrupt has taken place, and does the processing of the interrupt outside the ISR (in the main loop for instance)?

---

<div class="post-metadata">

**Author:** ![User1165](https://avatars.discourse-cdn.com/v4/letter/u/e9c0ed/32.png) [@User1165](https://forums.digi.com/u/User1165)\
**Post date:** [May 6, 2009, 7:32am UTC](https://forums.digi.com/t/rabbit-3000-interrupt-suppression-problem/11099/3 "2009-05-06T07:32:19Z")

</div>

kobuseng

Thanks for the reply.

I was also thinking of the same initially that high priority interrupt is creating problem but when I put the two interrupts (ext interrupt with priority 2 and 3) at same priority level (at priority 2), I observed the same problem. Moreover my project implimentation has

1. The two external interrupts never occure simultenously.
2. The two ISR do not share any element in main loop or with each other.

I am sure that the problem is because of interrupts and their priorities only, but not getting the cause of interrupt suppression.

Thanks & Regards  
Ketkee Thakar 🙂

---

<div class="post-metadata">

**Author:** ![kobuseng](https://avatars.discourse-cdn.com/v4/letter/k/f0a364/32.png) [@kobuseng](https://forums.digi.com/u/kobuseng)\
**Post date:** [May 6, 2009, 10:51am UTC](https://forums.digi.com/t/rabbit-3000-interrupt-suppression-problem/11099/4 "2009-05-06T10:51:10Z")

</div>

Have you tried to run all interrupts at priority 1. On a lot of uC (not just rabbit) interrupt priorities can have strange behaviour.

---

<div class="post-metadata">

**Author:** ![User1165](https://avatars.discourse-cdn.com/v4/letter/u/e9c0ed/32.png) [@User1165](https://forums.digi.com/u/User1165)\
**Post date:** [May 6, 2009, 2:27pm UTC](https://forums.digi.com/t/rabbit-3000-interrupt-suppression-problem/11099/5 "2009-05-06T14:27:44Z")

</div>

kobuseng

Thanks for reply.

My application’s ISR execution timings are as follows  
External Interrupt0 (Priority 3) - 29usec  
External Interrupt1 (Priority 2) - 50usec  
TimerA Interrupt (Priority 1) - 16.5usec

In my application the two external interrupts never occur simultenously but timerA interrupt occurs at every 498usec.  
Can you suggest something considering above information?

Meanwhile I will try to run the application by keeping all interrupt priorities set at 1.

Thanks & Regards  
Ketkee

---

<div class="post-metadata">

**Author:** ![kobuseng](https://avatars.discourse-cdn.com/v4/letter/k/f0a364/32.png) [@kobuseng](https://forums.digi.com/u/kobuseng)\
**Post date:** [May 6, 2009, 2:46pm UTC](https://forums.digi.com/t/rabbit-3000-interrupt-suppression-problem/11099/6 "2009-05-06T14:46:06Z")

</div>

Do you mean  
-that the interrupt latency (time before interrupt has to service the interrupt source) has to be 29us, 50us and 16.5us,  
-or that the interrupt occurs every 29us, 50us and 16.5us,  
-or that each interrupt service routine takes 29us, 50us and 16.5us to complete

---

<div class="post-metadata">

**Author:** ![User1165](https://avatars.discourse-cdn.com/v4/letter/u/e9c0ed/32.png) [@User1165](https://forums.digi.com/u/User1165)\
**Post date:** [May 7, 2009, 8:49am UTC](https://forums.digi.com/t/rabbit-3000-interrupt-suppression-problem/11099/7 "2009-05-07T08:49:11Z")

</div>

interrupt service routine takes 29us, 50us and 16.5us respectively to complete
