Interrupt Handling - Atmel ATtiny26 Manual

8-bit avr microcontroller with 2k bytes flash
Table of Contents

Advertisement

Interrupt Handling

Interrupt Response Time
General Interrupt Mask
Register – GIMSK
ATtiny26(L)
58
$00B
sei
...
...
The ATtiny26(L) has two 8-bit Interrupt Mask Control Registers; GIMSK – General Inter-
rupt Mask Register and TIMSK – Timer/Counter Interrupt Mask Register.
When an interrupt occurs, the Global Interrupt Enable I-bit is cleared (zero) and all inter-
rupts are disabled. The user software can set (one) the I-bit to enable nested interrupts.
The I-bit is set (one) when a Return from Interrupt instruction – RETI – is executed.
When the Program Counter is vectored to the actual Interrupt Vector in order to execute
the interrupt handling routine, hardware clears the corresponding flag that generated the
interrupt. Some of the interrupt flags can also be cleared by writing a logic one to the flag
bit position(s) to be cleared.
If an interrupt condition occurs when the corresponding interrupt enable bit is cleared
(zero), the interrupt flag will be set and remembered until the interrupt is enabled, or the
flag is cleared by software.
If one or more interrupt conditions occur when the Global Interrupt Enable bit is cleared
(zero), the corresponding interrupt flag(s) will be set and remembered until the Global
Interrupt Enable bit is set (one), and will be executed by order of priority.
Note that external level interrupt does not have a flag, and will only be remembered for
as long as the interrupt condition is active.
Note that the Status Register is not automatically stored when entering an interrupt rou-
tine and restored when returning from an interrupt routine. This must be handled by
software.
The interrupt execution response for all the enabled AVR interrupts is four clock cycles
minimum. After the four clock cycles the program vector address for the actual interrupt
handling routine is executed. During this four clock cycle period, the Program Counter
(10 bits) is pushed onto the Stack. The vector is a relative jump to the interrupt routine,
and this jump takes two clock cycles. If an interrupt occurs during execution of a multi-
cycle instruction, this instruction is completed before the interrupt is served.
A return from an interrupt handling routine takes four clock cycles. During these four
clock cycles, the Program Counter (10 bits) is popped back from the Stack. When AVR
exits from an interrupt, it will always return to the main program and execute one more
instruction before any pending interrupt is served. Note that the Status Register – SREG
– is not handled by the AVR hardware, neither for interrupts nor for subroutines. For the
routines requiring a storage of the SREG, this must be performed by user software.
Bit
7
6
$3B ($5B)
INT0
Read/Write
R
R/W
Initial Value
0
0
• Bit 7 – Res: Reserved Bit
This bit is a reserved bit in the ATtiny26(L) and always reads as zero.
• Bit 6 – INT0: External Interrupt Request 0 Enable
When the INT0 bit is set (one) and the I-bit in the Status Register (SREG) is set (one),
the external pin interrupt is enabled. The Interrupt Sense Control0 bits 1/0 (ISC01 and
ISC00) in the MCU general Control Register (MCUCR) define whether the external
...
...
5
4
3
PCIE1
PCIE0
R/W
R/W
R
0
0
0
2
1
0
GIMSK
R
R
R
0
0
0
1477G–AVR–03/05

Advertisement

Table of Contents
loading

This manual is also suitable for:

Attiny26l

Table of Contents