External Interrupt 0 on UC3C

Go To Last Post
2 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi All

I have just started with the EIC in the UC3C after using it previously in the UC3A and UC3B.

The previously used devices have a single interrupt group for these (External Interrupts 0..7) and the interrupt handler checked which one(s) it is.

The UC3C part has two interrupt groups for external interrupts 1..4 and 5..8. This means that there are two interrupt vectors and each then needs to identify which one(s) of its group is asserted.

Does anyone know how the external interrupt 0 is handled? It doesn't seem to belong to any group (???)

Regards

Mark

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi All

After a bit of experimentation I think that I can answer my own question:
- on the UC3C the external interrupt 0 is NMI, which means that it is handled by the NMI vector rather than the EIC interrupt group
- on the UC3A it is external interrupt 8 that is NMI
- UC3B doesn't seem to have an NMI since it doesn't connect an external interrupt number 8 (only 0..7)

Concerning handling the interrupt (or better exception?), I found that I needed to declare it as __exception when using IAR 4 otherwise it wouldn't return correctly (RETE).
When using GCC (eg. AVR32 studio 5) it seemed to require the attribute __attribute__((interrupt("full"))).

Any comments?

Regards

Mark