Wake-up Using Interrupts

When global interrupts are disabled (GIE cleared) and any interrupt source, with the exception of the clock switch interrupt, has both its interrupt enable bit and interrupt flag bit set, one of the following will occur:

Even if the flag bits were checked before executing a SLEEP instruction, it may be possible for flag bits to become set before the SLEEP instruction completes. To determine whether a SLEEP instruction executed, test the PD bit. If the PD bit is set, the SLEEP instruction was executed as a NOP.

Figure 1. WAKE-UP FROM SLEEP THROUGH INTERRUPT
Note:
  1. 1.External clock. High, Medium, Low mode assumed.
  2. 2.CLKOUT is shown here for timing reference.
  3. 3.TOST = 1024 TOSC. This delay does not apply to EC and INTOSC Oscillator modes.
  4. 4.GIE = 1 assumed. In this case after wake-up, the processor calls the ISR at 0004h. If GIE = 0, execution will continue in-line.