4317K–AVR–03/2013
AT90PWM2/3/2B/3B
0x010
rjmp TIM0_COMPA
; Timer0 Compare A Handler
0x011
rjmp TIM0_OVF
; Timer0 Overflow Handler
0x012
rjmp ADC
; ADC Conversion Complete Handler
0x013
rjmp EXT_INT1
; IRQ1 Handler
0x014
rjmp SPI_STC
; SPI Transfer Complete Handler
0x015
rjmp USART_RXC
; USART, RX Complete Handler
0x016
rjmp USART_UDRE
; USART, UDR Empty Handler
0x017
rjmp USART_TXC
; USART, TX Complete Handler
0x018
rjmp EXT_INT2
; IRQ2 Handler
0x019
rjmp WDT
; Watchdog Timer Handler
0x01A
rjmp EE_RDY
; EEPROM Ready Handler
0x01B
rjmp TIM0_COMPB
; Timer0 Compare B Handler
0x01C
rjmp EXT_INT3
; IRQ3 Handler
0x01F
rjmp SPM_RDY
; Store Program Memory Ready Handler
;
0x020RESET: ldi r16, high(RAMEND); Main program start
0x021
out SPH,r16
; Set Stack Pointer to top of RAM
0x022
ldi r16, low(RAMEND)
0x023
0x024
out SPL,r16
sei
; Enable interrupts
0x025
<instr> xxx
... ... ... ...
When the BOOTRST Fuse is unprogrammed, the Boot section size set to 2K bytes and the
IVSEL bit in the MCUCR Register is set before any interrupts are enabled, the most typical and
general program setup for the Reset and Interrupt Vector Addresses in AT90PWM2/2B/3/3B is:
Address Labels Code
Comments
0x000 RESET: ldi r16,high(RAMEND); Main program start
0x001
out SPH,r16
; Set Stack Pointer to top of RAM
0x002
ldi r16,low(RAMEND)
0x003
0x004
out SPL,r16
sei
; Enable interrupts
0x005
<instr> xxx
;
.org 0xC01
0xC01
rjmp PSC2_CAPT
; PSC2 Capture event Handler
0xC02
rjmp PSC2_EC
; PSC2 End Cycle Handler
...
... ...
;
0xC1F
rjmp SPM_RDY
; Store Program Memory Ready Handler
When the BOOTRST Fuse is programmed and the Boot section size set to 2K bytes, the most
typical and general program setup for the Reset and Interrupt Vector Addresses in
AT90PWM2/2B/3/3B is:
Address Labels Code
Comments
.org 0x001
0x001
rjmp PSC2_CAPT
; PSC2 Capture event Handler
0x002
rjmp PSC2_EC
; PSC2 End Cycle Handler
...
... ...
;
0x01F
rjmp SPM_RDY
; Store Program Memory Ready Handler
59