Hallo, leute. Noch eine Frage. Ist das wirklich so, dass wenn ich die interrupts erlaube, dann werden die sofort ausgeloest oder das macht nur AVR-Studio??? Weiss jemand wie man so was vermeiden kann? also z.B. int0 ist in gimsk und mcucr configuriert ung jetzt folgt sei... AVR-Studio macht sofort eine ausloesung von int0, obwohl keine aenderung am pin int0 vorhanden sind. Nehmen wir an, ein Wert im r16 soll bei int0 incrementiert werden, wenn ich das richtig verstehe, dann wird r16 sofort nach erlaubnis (sei - Befehl) ein mal incrementiert und dann nur bei Aenderung am pin Int0
Tip: Erst MCUCR schreiben, dann Setzen des Bit INT0 im GIMSK, dann das Bit INTF0 im GIFR-Register auf 0 setzen (Achtung! Dazu muss unlogischerweise eine 1 in das Register geschrieben werden!), dann erst SEI. So herum müsste es klappen. Habe es aber nicht ausprobiert. MfG Gerd
Ich habe mich wahrscheinlich zukompliziert ausgedrueckt. Aber es ist so, dass sofort nach dem "sei" Befehl wird interrupt ausgeloest. Nur ein mal, dan laeuft alles weiter. Und das will ich irgendwie vermeiden
Aaaaaah so.... Jetzt habe ich kopiert was Du meinst. Im GIFR-Register bit INTF0 wird 1 wenn ich wirklich level am Pin INT0 entschprechend MCUCR veraendere. Und am anfang muss ich von Hand sagen, dass da eine Null ist (es ist kommisch, aber eine 0 wird dann, wenn ich dort 1 reinschreibe) und dann kommt sei...Und uebergang zum interrupt-vektor wird nicht gemacht, weil im INTF0 eine Null ist
Vielen dank fuer den TIP ich werde es jetzt ausprobieren
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.