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.