Gast
#420131
Hallo!
Ich habe mir mal folgenden code eingetippt um ein bischen mit den
Interrupts rumzuspielen (ist noch neuland für mich):
___________________________________________________________________
.include "m16def.inc"
.def temp1 = r16
.CSEG
.ORG 0000
rjmp Main ; Zum Maincode Springen
reti ; INT0
reti ; INT1
reti ; Timer1 CAPT
reti ; Timer1 COMPA
reti ; TIMER1 COMPB
reti ; TIMER1 COMP1
reti ; TIMER1 OVF
reti ; TIMER0 OVF
reti ; SPI STC
reti ; UART RX
reti ; UART UDRE
reti ; UART TX
reti ; ANA_COMP
Main:
ldi temp1, LOW(RAMEND) ; LOW-Byte der obersten
RAM-Adresse
out SPL, temp1
ldi temp1, HIGH(RAMEND) ; HIGH-Byte der obersten
RAM-Adresse
out SPH, temp1
ldi temp1, 0x00
out DDRD, temp1
sei
___________________________________________________________________
Wenn ich nun im AVR simulator den Int0 aktiviere und das Programm
durchlaufe springt er immer an die stelle, die laut meiner kommentare
eigentlich Int1 ist.
Wenn ich im simulator INT1 aktiviere springt er zu TIMER1 COMPA.
Der Int2 springt direkt auf Reset.
Aber laut datenblatt ist doch die reset adresse 0000 -0002, int0
0003-0004 etc...
Was stimmt da bei mir nicht?
Ist es überhaupt richtig das ich 13 mal reti schreibe, wenn ich den
jeweiligen Vector nicht benutze?