ATmega32(L)
Table 19. Reset and Interrupt Vectors Placement(1)
BOOTRST IVSEL Reset address
Interrupt Vectors Start Address
1
0
$0000
$0002
1
1
$0000
Boot Reset Address + $0002
0
0
Boot Reset Address
$0002
0
1
Boot Reset Address
Boot Reset Address + $0002
Note: 1. The Boot Reset Address is shown in Table 99 on page 255. For the BOOTRST Fuse
“1” means unprogrammed while “0” means programmed.
The most typical and general program setup for the Reset and Interrupt Vector
Addresses in ATmega32 is:
Address Labels Code
Comments
$000
jmp RESET
; Reset Handler
$002
jmp EXT_INT0
; IRQ0 Handler
$004
jmp EXT_INT1
; IRQ1 Handler
$006
jmp EXT_INT2
; IRQ2 Handler
$008
jmp TIM2_COMP
; Timer2 Compare Handler
$00A
jmp TIM2_OVF
; Timer2 Overflow Handler
$00C
jmp TIM1_CAPT
; Timer1 Capture Handler
$00E
jmp TIM1_COMPA
; Timer1 CompareA Handler
$010
jmp TIM1_COMPB
; Timer1 CompareB Handler
$012
jmp TIM1_OVF
; Timer1 Overflow Handler
$014
jmp TIM0_COMP
; Timer0 Compare Handler
$016
jmp TIM0_OVF
; Timer0 Overflow Handler
$018
jmp SPI_STC
; SPI Transfer Complete Handler
$01A
jmp USART_RXC
; USART RX Complete Handler
$01C
jmp USART_UDRE
; UDR Empty Handler
$01E
jmp USART_TXC
; USART TX Complete Handler
$020
jmp ADC
; ADC Conversion Complete Handler
$022
jmp EE_RDY
; EEPROM Ready Handler
$024
jmp ANA_COMP
; Analog Comparator Handler
$026
jmp TWI
; Two-wire Serial Interface Handler
$028
jmp SPM_RDY
; Store Program Memory Ready Handler
;
$02A
RESET: ldi r16,high(RAMEND) ; Main program start
$02B
out SPH,r16
; Set Stack Pointer to top of RAM
$02C
ldi r16,low(RAMEND)
$02D
out SPL,r16
$02E
sei
; Enable interrupts
$02F
<instr> xxx
...
...
...
45
2503J–AVR–10/06