CHAPTER 15 INTERRUPT FUNCTIONSUser’s Manual U16227EJ2V0UD32615.4.3 Multiple interrupt servicingMultiple interrupt servicing occurs when another interrupt request is acknowledged during execution of an interrupt.Multiple interrupt servicing does not occur unless the interrupt request acknowledgment enabled state is selected(IE = 1). When an interrupt request is acknowledged, interrupt request acknowledgment becomes disabled (IE = 0).Therefore, to enable multiple interrupt servicing, it is necessary to set (1) the IE flag with the EI instruction duringinterrupt servicing to enable interrupt acknowledgment.Moreover, even if interrupts are enabled, multiple interrupt servicing may not be enabled, this being subject tointerrupt priority control. Two types of priority control are available: default priority control and programmable prioritycontrol. Programmable priority control is used for multiple interrupt servicing.In the interrupt enabled state, if an interrupt request with a priority equal to or higher than that of the interruptcurrently being serviced is generated, it is acknowledged for multiple interrupt servicing. If an interrupt with a prioritylower than that of the interrupt currently being serviced is generated during interrupt servicing, it is not acknowledgedfor multiple interrupt servicing.Interrupt requests that are not enabled because interrupts are in the interrupt disabled state or because they havea lower priority are held pending. When servicing of the current interrupt ends, the pending interrupt request isacknowledged following execution of at least one main processing instruction execution.Table 15-5 shows relationship between interrupt requests enabled for multiple interrupt servicing and Figure 15-10shows multiple interrupt servicing examples.Table 15-5. Relationship Between Interrupt Requests Enabled for Multiple Interrupt ServicingDuring Interrupt ServicingMaskable Interrupt RequestPR = 0 PR = 1Multiple Interrupt RequestInterrupt Being Serviced IE = 1 IE = 0 IE = 1 IE = 0SoftwareInterruptRequestISP = 0 × × ×Maskable interruptISP = 1 × ×Software interrupt × ×Remarks 1. : Multiple interrupt servicing enabled2. ×: Multiple interrupt servicing disabled3. ISP and IE are flags contained in the PSW.ISP = 0: An interrupt with higher priority is being serviced.ISP = 1: No interrupt request has been acknowledged, or an interrupt with a lowerpriority is being serviced.IE = 0: Interrupt request acknowledgment is disabled.IE = 1: Interrupt request acknowledgment is enabled.4. PR is a flag contained in PR0L, PR0H, and PR1L.PR = 0: Higher priority levelPR = 1: Lower priority level