NEC PD750008 Manuale Utente

Pagina di 342
198
µPD750008 USER'S MANUAL
6.6   PROCESSING OF INTERRUPTS SHARING A VECTOR ADDRESS
Interrupt sources INTBT and INT4 share a vector table, so an interrupt source is selected as described
below.
(1) Using only one interrupt
The interrupt enable flag for desired one of the two interrupt sources sharing a vector table is set to 1,
and the interrupt enable flag for the other is cleared to 0.  In this case, the enabled (IExxx = 1) interrupt
source causes an interrupt request.  When the interrupt request is accepted, the interrupt request flag
is reset.
(2) Using both interrupts
The interrupt enable flags corresponding to the two interrupt sources are both set to 1.  In this case, the
logical sum of the interrupt request flags for the two interrupt sources is used as an interrupt request.
In this case, even if an interrupt request or interrupt requests caused by the setting of one or both of the
interrupt request flags are accepted, the interrupt request flag or flags are not reset.
Accordingly, which of the two interrupt sources caused the interrupt needs to be determined using the
interrupt service routine.  For this determination, the DI instruction is to be executed at the start of the
interrupt service routine, and the interrupt request flags are checked with the SKTCLR instruction.
If both the request flags are set when this request flag is tested or cleared, the interrupt request remains
even if one of the request flags is cleared.  If this interrupt is selected as having the higher priority, nesting
processing is started by the remaining interrupt request.
Consequently, the interrupt request not tested is processed first.  If the selected interrupt has the lower
priority, the remaining interrupt is kept pending and therefore, the interrupt request tested is processed
first.  Therefore, an interrupt sharing a vector address with another interrupt is identified differently,
depending whether it has the higher priority, as shown in Table 6-4.
Table 6-4.  Identifying Interrupt Sharing Vector Table Address
With higher priority
Interrupt is disabled and interrupt request flag of interrupt that takes precedence is
tested
With lower priority
Interrupt request flag of interrupt that takes precedence is tested
*
*