12 INTERRUPT CONTROLLER (ITC)
12-4
Seiko Epson Corporation
S1C33L26 TECHNICAL MANUAL
If interrupt requests are input to the ITC simultaneously from two or more peripheral modules, the ITC outputs the
interrupt request with the highest priority to the C33 PE Core in accordance with the following conditions.
1. The interrupt with the highest interrupt level takes precedence.
2. If multiple interrupt requests are input with the same interrupt level, the interrupt with the lowest vector number
takes precedence.
The other interrupts occurring at the same time are held until all interrupts with higher priority levels have been ac-
cepted by the C33 PE Core.
If an interrupt cause with higher priority occurs while the ITC is outputting an interrupt request signal to the C33
PE Core (before being accepted by the C33 PE Core), the ITC alters the vector number and interrupt level signals
to the setting information on the more recent interrupt. The previously occurring interrupt is held. The held inter-
rupt is canceled and no interrupt is generated if the interrupt flag in the peripheral module is reset with software.
3.2.1 Interrupt Level Registers
Table 12.
Hardware interrupt
Interrupt level register
Port input interrupt 0 (FPT0–3 interrupt)
ITC_FPT03_LV
(0x300210)
Port input interrupt 1 (FPT4–7 interrupt)
ITC_FPT47_LV
(0x300211)
Port input interrupt 2 (FPT8–B interrupt)
ITC_FPT8B_LV
(0x300212)
Port input interrupt 3 (FPTC–F interrupt)
ITC_FPTCF_LV
(0x300213)
DMAC Ch.0/2 interrupt
ITC_DMA02_LV (0x300214)
DMAC Ch.1/3 interrupt
ITC_DMA13_LV (0x300215)
DMAC Ch.4/6 interrupt
ITC_DMA46_LV (0x300216)
DMAC Ch.5/7 interrupt
ITC_DMA57_LV (0x300217)
16-bit audio PWM timer (T16P) interrupt
ITC_T16P_LV
(0x300218)
16-bit PWM timer (T16A5) Ch.0 interrupt
ITC_T16A0_LV
(0x300219)
16-bit PWM timer (T16A5) Ch.1 interrupt
ITC_T16A1_LV
(0x30021a)
LCDC interrupt
ITC_LCDC_LV
(0x30021b)
8-bit timer (T8) Ch.0/4 interrupt
ITC_T804_LV
(0x30021d)
8-bit timer (T8) Ch.1/5 interrupt
ITC_T815_LV
(0x30021e)
8-bit timer (T8) Ch.2/6 interrupt
ITC_T826_LV
(0x30021f)
8-bit timer (T8) Ch.3/7 interrupt
ITC_T837_LV
(0x300220)
USI interrupt
ITC_USI_LV
(0x300221)
FSIO Ch.0 interrupt
ITC_FSIO0_LV
(0x300222)
A/D converter (ADC10) interrupt
ITC_ADC10_LV
(0x300223)
RTC interrupt
ITC_RTC_LV
(0x300224)
FSIO Ch.1 interrupt
ITC_FSIO1_LV
(0x300226)
USIL interrupt
ITC_USIL_LV
(0x300227)
Remote controller (REMC) interrupt
ITC_REMC_LV
(0x300228)
I
2
S interrupt
ITC_I2S_LV
(0x300229)
GE complete interrupt
ITC_GECOM_LV (0x30022a)
GE error interrupt
ITC_GEERR_LV (0x30022b)
USB interrupt
ITC_USB_LV
(0x30022c)
Interrupt Processing by the C33 PE Core
12.3.3
A Maskable interrupt to the C33 PE Core occurs when all of the following conditions are met:
• The interrupt is enabled by the interrupt control bit inside the peripheral module.
• The IE (Interrupt Enable) bit of the PSR (Processor Status Register) in the C33 PE Core has been set to 1.
• The cause of interrupt that has occurred has a higher interrupt level than the value set in the IL field of the PSR.
• No other cause of interrupt having higher priority, such as NMI, has occurred.
If an interrupt cause that has been enabled in the peripheral module occurs, the corresponding interrupt flag is set to 1,
and this state is maintained until it is reset by the program. This means that the interrupt cause is not cleared even if
the conditions listed above are not met when the interrupt cause occurs. An interrupt occurs if the above conditions
are met.
If multiple maskable interrupt causes occur simultaneously, the interrupt cause with the highest interrupt level and
lowest vector number becomes the subject of the interrupt request to the C33 PE Core. Interrupts with lower levels
are held until the above conditions are subsequently met.