beautypg.com

6 servicing of interrupts sharing vector address – NEC PD754144 User Manual

Page 200

background image

CHAPTER 7 INTERRUPT AND TEST FUNCTIONS

200

User’s Manual U10676EJ3V0UM

7.6 Servicing of Interrupts Sharing Vector Address

Because interrupt sources INTT1 and INTT2 share vector tables, you should select one or both of the interrupt

sources in the following way.

(1) To use one interrupt

Of the two interrupt sources sharing a vector table, set the interrupt enable flag of the necessary interrupt

source to “1”, and clear the interrupt enable flag of the other interrupt source to “0”. In this case, an interrupt

request is generated by the interrupt source that is enabled (IE

××× = 1). When the interrupt is acknowledged,

the interrupt request flag is reset.

(2) To use both interrupts

Set the interrupt enable flags of both the interrupt sources to “1”. In this case, the interrupt request flags of

the two interrupt sources are ORed.

In this case, if an interrupt request is acknowledged when one or both the interrupt flags are set, the interrupt

request flags of both the interrupt sources are not reset. This is in order to ascertain which interrupt was

generated during interrupt servicing.

Therefore, it is necessary to identify which interrupt source has generated the interrupt by using an interrupt

service routine. This can be done by checking the interrupt request flags by executing the SKTCLR instruction

at the beginning of the interrupt service routine.

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 servicing

is started by the remaining interrupt request.

Consequently, the interrupt request not tested is serviced first. If the selected interrupt has a lower priority,

the remaining interrupt is held pending and therefore, the interrupt request tested is serviced first. Therefore,

an interrupt sharing a vector address with the other interrupt is identified differently, depending whether it has

a higher priority, as shown in Table 7-4.

Table 7-4. Identifying Interrupt Sharing Vector 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

This manual is related to the following products: