Witam, mam problem z zewnętrznym przerwaniem, mianowicie testując je na symulatorze z avrstudio okazuje się że pierwsze przerwanie powoduje że funkcja obsługująca je dwa razy się wywołuje a następnie powrót następuje pod adres 0x0, a nie do miejsca w którym wystąpiło przerwanie. Poniżej zamieszczam kod. Proszę o pomoc.
.nolist
.include "m8def.inc"
.list
.def tmp=R17
;przeniesienia przerwan
ldi tmp,(1<<IVCE)
out GICR,tmp
ldi tmp,(1<<IVSEL)
out GICR,tmp
;wlaczenie przerwan
ldi tmp,(1<<INT0)
out GICR,tmp
ldi tmp,0xF
out MCUCR,tmp
sei
loop:
ldi tmp,0x0
rjmp loop
.org 0xc01
rjmp EXT_INT0;ext interrupt 1
EXT_INT0:
RETI