13.2 Interrupt Vectors

Interrupt vectors are described in the table below.

Table 13-1. Reset and Interrupt Vectors
Vector No.Program AddressSourceInterrupt Definition
10x000RESETExternal Pin, Power-on Reset, VLM Reset and Watchdog Reset
20x001INT0External Interrupt Request 0
30x002PCINT0Pin Change Interrupt Request 0
40x003PCINT1Pin Change Interrupt Request 1
50x004TIM0_CAPTTimer/Counter0 Capture
60x005TIM0_OVFTimer/Counter0 Overflow
70x006TIM0_COMPATimer/Counter0 Compare Match A
80x007TIM0_COMPBTimer/Counter0 Compare Match B
90x008ANA_COMPAnalog Comparator
100x009WDTWatchdog Time-out Interrupt
110x00AVLMVCC Voltage Level Monitor
120x00BADCADC Conversion Complete
130x00CUSART0_RXS USART0 Rx Start
140x00DUSART0_RXCUSART0 Rx Complete
150x00EUSART0_DREUSART0 Data Register Empty
160x00FUSART0_TXCUSART0 Tx Complete

In case the program never enables an interrupt source, the Interrupt Vectors will not be used and, consequently, regular program code can be placed at these locations.

The most typical and general program setup for the Reset and Interrupt Vector Addresses in this device is:

Address  Labels    Code                    Comments
0x000              rjmp RESET             ; Reset Handler
0x001              rjmp INT0              ; IRQ0 Handler
0x002              rjmp PCINT0            ; PCINT0 Handler
0x003              rjmp PCINT1            ; PCINT1 Handler
0x004              rjmp TIM0_CAPT         ; Timer/Counter0 Capture Handler
0x005              rjmp TIM0_OVF          ; Timer/Counter0 Overflow Handler
0x006              rjmp TIM0_COMPA        ; Timer/Counter0 Compare Match A Handler
0x007              rjmp TIM0_COMPB        ; Timer/Counter0 Compare Match B Handler  
0x008              rjmp ANA_COMP          ; Analog Comparator Handler     
0x009              rjmp WDT               ; Watchdog Timer Handler
0x00A              rjmp VLM               ; Voltage Level Monitor Handler
0x00B              rjmp ADC               ; ADC Conversion Handler
0x00C              rjmp USART0_RXS        ; USART0 Rx Start Handler
0x00D              rjmp USART0_RXC        ; USART0 Rx Complete Handler
0x00E              rjmp USART0_DRE        ; USART0 Data Register Empty Handler
0x00F              rjmp USART0_TXC        ; USART0 Tx Complete Handler

0x010     RESET:   ldi r16, high (RAMEND) ; Main program start
0x011              out SPH, r16           ; Set Stack Pointer
0x012              ldi r16, low(RAMEND)   ; to top of RAM
0x013              out SPL, r16
0x014              sei                    ; Enable interrupts
0x015              <instr>
...                ...