HT45R22E Holtek Semiconductor, HT45R22E Datasheet - Page 48

no-image

HT45R22E

Manufacturer Part Number
HT45R22E
Description
Remote Type 8-bit OTP MCU
Manufacturer
Holtek Semiconductor
Datasheet
Interrupts
Interrupts are an important part of any microcontroller
system. When an external event or an internal function
such as a Timer/Event Counter or Time Base requires
microcontroller attention, their corresponding interrupt
will enforce a temporary suspension of the main pro-
gram allowing the microcontroller to direct attention to
their respective needs.
The device contains a single external interrupt and mul-
tiple internal interrupts. The external interrupt is con-
trolled by the action of the external interrupt pin, while
the internal interrupts are generated by the various func-
tions such as Timer/Event Counters, OPAs, Comparator
and Time Base.
Interrupt Register
Overall interrupt control, which means interrupt enabling
and request flag setting, is controlled by using two regis-
ters, INTC0 and INTC1. By controlling the appropriate
enable bits in this registers each individual interrupt can
be enabled or disabled. Also when an interrupt occurs,
the corresponding request flag will be set by the
microcontroller. The global enable control bit if cleared
to zero will disable all interrupts.
Interrupt Operation
A Timer/Event Counter overflow, an active edge on the
external interrupt pin, a comparator output transition, an
OPA output falling edge or a Time Base event will all
generate an interrupt request by setting their corre-
sponding request flag, if their appropriate interrupt en-
able bit is set. When this happens, the Program
Counter, which stores the address of the next instruction
to be executed, will be transferred onto the stack. The
Program Counter will then be loaded with a new ad-
dress which will be the value of the corresponding inter-
rupt vector. The microcontroller will then fetch its next
instruction from this interrupt vector. The instruction at
this vector will usually be a JMP statement which will
jump to another section of program which is known as
the interrupt service routine. Here is located the code to
control the appropriate interrupt. The interrupt service
routine must be terminated with a RETI instruction,
which retrieves the original Program Counter address
from the stack and allows the microcontroller to continue
with normal execution at the point where the interrupt
occurred.
Rev. 1.00
48
The various interrupt enable bits, together with their as-
sociated request flags, are shown in the following dia-
gram with their order of priority.
Once an interrupt subroutine is serviced, all the other in-
terrupts will be blocked, as the EMI bit will be cleared au-
tomatically. This will prevent any further interrupt nesting
from occurring. However, if other interrupt requests oc-
cur during this interval, although the interrupt will not be
immediately serviced, the request flag will still be re-
corded. If an interrupt requires immediate servicing
while the program is already in another interrupt service
routine, the EMI bit should be set after entering the rou-
tine, to allow interrupt nesting. If the stack is full, the in-
terrupt request will not be acknowledged, even if the
related interrupt is enabled, until the Stack Pointer is
decremented. If immediate service is desired, the stack
must be prevented from becoming full.
When an interrupt request is generated, it takes 2 or 3
instruction cycle before the program jumps to the inter-
rupt vector. If the device is in the Sleep or Idle Mode and
is woken up by an interrupt request, then it will take 3 cy-
cles before the program jumps to the interrupt vector.
Program
Program
Main
Main
Interrupt Request or
Interrupt Flag Set by Instruction
Interrupt Flow
N
Wait for 2 ~ 3 Instruction Cycles
Automatically Disable Interrupt
(it will set EMI automatically)
Clear EMI & Request Flag
Enable Bit Set ?
HT45R22E
March 17, 2010
ISR Entry
RETI
Y
www.DataSheet4U.com

Related parts for HT45R22E