Gast
#10616
hab da ein problem mit der initialisierung meines externen interrupts.
.org 0x000
rjmp Initial
rjmp Inter0
.org 0x00D
Initial:
ldi tmp, High(RAMEND) ; Stack initialisiert
out $3E, tmp
ldi tmp, Low(RAMEND)
out $3D, tmp
in tmp, $35
ori tmp, 0b00000011 ;Int0 auf steigende Flanke setzen MCUCR
out $35, tmp
in tmp, $3B
ori tmp, 0b01000000 ;Int0 freigeschaltet GIMSK
out $3B, tmp
sei
Main:
nop
rjmp Main
Inter0:
nop
reti
sobald der debugger die stelle abarbeitet, an der das globale
interruptflag gestzt wird, wird noch ein weiterer befehl ausgeführt, bis
er daraufhin in die Inter0-routine springt. wenn diese abgearbeitet ist
springt er wieder zurück und arbeitet das programm ganz normal ab. habe
auch schon erst das globale interruptflag gesetzt und dann das TIMSK
maskiert oder den GIFR vorher gelöscht (alles ohne erfolg).
ich benutze das AVR-Studio 4 zum ausprobieren.
hat jemand einen tip? bin am verzweifeln!
mfg patrick