TC1796
System Units (Vol. 1 of 2)
Interrupt System
User’s Manual
14-20
V2.0, 2007-07
Interrupt, V2.0
for example, interrupt 14 is serviced, it can only be interrupted by requests with a priority
number higher than 17; therefore it will not be interrupted by requests from its own
priority group or requests with lower priority.
In
, the interrupt request with priority number 13 can be said to form an
interrupt priority group with just itself as a member.
Setting ICR.CCPN to the maximum value 255 in each service routine has the same
effect as not re-enabling the interrupt system; all interrupt requests can then be
considered to be in the same group.
Interrupt priority groups demonstrate the power of the TC1796 priority-based interrupt-
ordering system. Thus the flexibility of interrupt priority levels ranges from all interrupts
in one group to each interrupt request building its own group, and to all possible
combinations in between.
Figure 14-4 Interrupt Priority Groups
14.8.4
Splitting Interrupt Service Across Different Priority Levels
Interrupt service can be divided into multiple ISRs that execute at different priority levels.
For example, the beginning stage of interrupt service may be very time-critical, such as
reading a data value within a limited time window after the interrupt request activation.
However, once the time-critical phase is past, there may still be more to do – for instance,
MCA05745
Interrupt Vector Table
PN = 255
PN = 18
PN = 17
PN = 16
PN = 15
PN = 14
PN = 13
PN = 12
PN = 11
PN = 10
Priority
Group 2
Priority
Group 1