Hardware Interrupts - Freescale Semiconductor MC68HC908MR16 Datasheet

Freescale semiconductor microcontrollers data sheet
Table of Contents

Advertisement

MODULE
INTERRUPT
I BIT
IAB
IDB
R/W

14.5.1.1 Hardware Interrupts

A hardware interrupt does not stop the current instruction. Processing of a hardware interrupt begins after
completion of the current instruction. When the current instruction is complete, the SIM checks all pending
hardware interrupts. If interrupts are not masked (I bit clear in the condition code register), and if the
corresponding interrupt enable bit is set, the SIM proceeds with interrupt processing; otherwise, the next
instruction is fetched and executed.
If more than one interrupt is pending at the end of an instruction execution, the highest priority interrupt is
serviced first.
Figure 14-10
is pending upon exit from the original interrupt service routine, the pending interrupt is serviced before the
load-accumulator-from- memory (LDA) instruction is executed.
The LDA opcode is prefetched by both the INT1 and INT2 RTI instructions. However, in the case of the
INT1 RTI prefetch, this is a redundant operation.
To maintain compatibility with the M6805 Family, the H register is not
pushed on the stack during interrupt entry. If the interrupt service routine
modifies the H register or uses the indexed addressing mode, software
should save the H register and then restore it prior to exiting the routine.
Freescale Semiconductor
SP – 4
SP – 3
SP – 2
CCR
A
Figure 14-9. Interrupt Recovery
demonstrates what happens when two interrupts are pending. If an interrupt
CLI
LDA
#$FF
INT1
PSHH
PULH
RTI
INT2
PSHH
PULH
RTI
.
Figure 14-10
Interrupt Recognition Example
MC68HC908MR32 • MC68HC908MR16 Data Sheet, Rev. 6.1
SP – 1
SP
PC
X
PC – 1[7:0] PC – 1[15:8] OPCODE
BACKGROUND ROUTINE
INT1 INTERRUPT SERVICE ROUTINE
INT2 INTERRUPT SERVICE ROUTINE
NOTE
Exception Control
PC + 1
OPERAND
189

Advertisement

Table of Contents
loading

This manual is also suitable for:

Mc68hc908mr32

Table of Contents