57
ATmega165A/PA/325A/PA/3250A/PA/645A/P/6450A/P [DATASHEET]
8285E–AVR–02/2013
13. External interrupts
The External Interrupts are triggered by the INT0 pin or any of the PCINT30:0 pins
(2). Observe that, if enabled, the
interrupts will trigger even if the INT0 or PCINT30:0 pins are configured as outputs. This feature provides a way of
generating a software interrupt. The pin change interrupt PCI1 will trigger if any enabled PCINT15:8 pin toggles.
Pin change interrupts PCI0 will trigger if any enabled PCINT7:0 pin toggles. The PCMSK3
PCMSK1, and PCMSK0 Registers control which pins contribute to the pin change interrupts. Pin change interrupts
on PCINT30: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 INT0 interrupts can be triggered by a falling or rising edge or a low level. This is set up as indicated in the
enabled and is configured as level triggered, the interrupt will trigger as long as the pin is held low. . Note that rec-
ognition of falling or rising edge interrupts on INT0 requires the presence of an I/O clock, described in
”Clockthat this interrupt 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
Notes:
1. PCMSK3 and PCMSK2 are only present in Atmel ATmega3250A/3250PA/6450A/6450P.
2. PCINT30:16 are only present in ATmega3250A/3250PA/6450A/6450P. Only PCINT15:0 are present in Atmel
13.1
Pin change interrupt timing
Figure 13-1. 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
PCINT(0) in PCMSK(x)
pcint_in_(0)
0
x