16 external interrupts, 1 pin change interrupt timing, Atmega128rfa1 – Rainbow Electronics ATmega128RFA1 User Manual
Page 218

218
8266A-MCU Wireless-12/09
ATmega128RFA1
16 External Interrupts
The External Interrupts are triggered by the INT7:0 pin or any of the PCINT8:0 pins.
Observe that if enabled, the interrupts will trigger even if the INT7:0 or PCINT8:0 pins
are configured as outputs. This feature provides a way of generating a software
interrupt.
The Pin Change Interrupt PCI0 will trigger if any enabled PCINT7:0 pin toggles, Pin
change interrupt PCI1 if the enabled PCINT8 toggles. PCINT23:9 have no function
inside the ATmega128RFA1. Their corresponding I/O port are not implemented.
PCMSK1 and PCMSK0 Registers control which pins contribute to the pin change
interrupts. PCI2 and PCMSK2 associated to PCINT23:16 have no task in this design.
Pin change interrupts on PCINT8:0 are detected asynchronously. This implies that
these interrupts can be used for waking the part also from sleep modes other than Idle
mode.
The External Interrupts can be triggered by a falling or rising edge or a low level. This is
set up as indicated in the specification for the External Interrupt Control Registers –
EICRA (INT3:0) and EICRB (INT7:4). When the external interrupt is enabled and is
configured as level triggered, the interrupt will trigger as long as the pin is held low.
Note that recognition of falling or rising edge interrupts on INT7:4 requires the presence
of an I/O clock, described in
. Low level interrupts and the edge
interrupt on INT3:0 are detected asynchronously. This implies that these interrupts can
be used for waking the part also from sleep modes other than Idle mode. The I/O clock
is halted in all sleep modes except Idle mode.
Note that if a level triggered interrupt is used for wake-up from Power-down, the
required level must be held long enough for the MCU to complete the wake-up to trigger
the level interrupt. If the level disappears before the end of the Start-up Time, the MCU
will still wake up, but no interrupt will be generated. The start-up time is defined by the
SUT and CKSEL Fuses as described in
.
16.1 Pin Change Interrupt Timing
An example of timing of a pin change interrupt is shown in
.
Figure 16-1. Normal Pin Change Interrupt
clk
PCINT(n)
pin_lat
pin_sync
pcint_in_(n)
pcint_syn
pcint_setflag
PCIF
PCINT(0)
pin_sync
pcint_syn
pin_lat
D Q
LE
pcint_setflag
PCIF
clk
clk
PCINT(0) in PCMSK(x)
pcint_in_(0)
0
x