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
Hi Ich benutze auch AVR-Studio 4 und wenn ich das so lese beschleicht mich das dumme Gefühl "mit INT0 ist was nicht ok" ! Bei mir sollte INT0 auf beide Flanken reagieren, was aber per Pinumschaltung nicht möglich war. Ich musste INTF0 setzen um einen auszulösen. Übrigens werden die Flags durch beschreiben mit 1 gelöscht, kannst du ja mal vor "sei" machen. Gruss Uwe
ein freund von mir hatte auch schon unerklärliche interrupt probleme mit dem AVR-Studio 4. vieleicht ist es das programm. kann denn jemand iein besseres empfehlen?
es liegt am avr studio 4! studio 3 setzt beim beschreiben des MUCURs einen interrupt-flag.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.