User`s guide

Interrupts LZ87010 Advance User’s Guide
12-2 1/15/03
12.1.2 Interrupt Vectors
The LZ87010 uses 13 different interrupt vectors, each dedicated to a particular use. For
example, a Timer 0 interrupt causes the interrupt controller to call the interrupt routine at
0x000B, while a Timer 1 interrupt calls the interrupt routine at 0x001B. Table 12-2 lists all
of the interrupt vectors and their sources.
Each interrupt vector has an associated interrupt level, which determines the order in
which interrupts are serviced if they have been assigned the same interrupt priority (That
is, interrupt priority takes precedence over interrupt level). Interrupts with low interrupt
levels are serviced before interrupts with higher interrupt levels. The interrupt vector is
related to the interrupt level as follows:
Vector = (Level × 8) + 3
Thus, the vector for interrupt level 0 is at address 0x0003. Eight bytes are reserved for each
vector. Some interrupt service routines are short enough to fit in this space. Otherwise, a
jump can be made to another point in code memory. (Address 0x0000 is reserved for the
reset vector, and the three bytes allotted to it are just enough for a long jump instruction.)
NOTE: *The interrupt level shows the order in which simultaneous
interrupts will be serviced if they are all set to the same priority
level. The lowest level is serviced first. Levels 5 and 14 are
not implemented in the LZ87010.
Table 12-2. Interrupt Vectors
DESCRIPTION
VECTOR
ADDRESS
INTERRUPT
LEVEL*
External Interrupt 0 (INT0 pin) 0x0003 0
Timer 0 0x000B 1
External Interrupt 1 (INT1 pin) 0x0013 2
Timer 1 0x001B 3
UART 0 0x0023 4
Timer 4/Timer 5 0x0033 6
Timer 2/Timer 3 0x003B 7
I
2
C0x00438
UART 1 0x004B 9
ADC 0x0053 10
DAC 0 Waveform Generator 0x005B 11
DAC 1 Waveform Generator 0x0063 12
External Interrupt 2 (INT7:2 pins) 0x006B 13