15 Interrupts

The PIC18(L)F26/45/46K40 devices have multiple interrupt sources and an interrupt priority feature that allows most interrupt sources to be assigned a high or low-priority level. The high-priority interrupt vector is at 0008h and the low-priority interrupt vector is at 0018h. A high-priority interrupt event will interrupt a low-priority interrupt that may be in progress.

The registers for controlling interrupt operation are:

  • INTCON
  • PIRx (Interrupt flags)
  • PIEx (Interrupt enables)
  • IPRx (High/Low interrupt priority)

It is recommended that the Microchip header files supplied with MPLAB® IDE be used for the symbolic bit names in these registers. This allows the assembler/compiler to automatically take care of the placement of these bits within the specified register.

In general, interrupt sources have three bits to control their operation. They are:

  • Flag bit to indicate that an interrupt event occurred
  • Enable bit that allows program execution to branch to the interrupt vector address when the flag bit is set
  • Priority bit to select high priority or low priority