Hi zusammen, ich hatte mir ein Komplexeres Programm geschrieben für eine kleine Garagenalarmanlage. Leider funktionierte es überhaupt nicht. Nach testen stellte ich fest das der Externe Interrupt überhaupt nicht macht was er soll. Habe den Tiny2313 auf 128K internen Timer laufen, damit er schön wenig Strom verbraucht und noch einen Sleeper aktuell programmiert. So: Ich habe den externen Interrupt über das GIMSK Register freigeschaltet und auch die Interrupts über den sei() Befehl. Dazu habe ich noch PORTD2 gesetzt (ist der für den ext. Int0), damit dieser Intern High anlegt, da ich diesen über Masse setzen möchte (Deswegen ist auch in MCUCR nichts gesetzt, da ISC00 und ISC01 dafür 0 sein müssen). Der externe Interrupt kann also kommen. Wenn ich das Gertät Einschalte und habe PD2 auf Masse leuchten alle LEDS PB0-2. Ziehe ich PD2 von Masse ab und lege es wieder drauf passiert nichts, egal ob ich es wiederhole. Schlussfolgerung. Er geht jetzt ständig in den Interrupt rein. Egal ob Masse am Interrupt Eingang oder nicht. Wenn ich das Gerät nun Einschalte und lege am PD2 direkt an High, geht das Gerät auch nicht in den Interrupt und nur PB1 leuchtet, danach geht er in Sleep Mode (glaube ich). Entferne ich jetzt die Brücke von High sollte eigentlich ncihts passieren, da er ja intern auf High geschaltet sein sollte. Jetzt leuchten allerdings auch noch PB0 und PB2 in High. Er macht also wieder ständig Interrupts (glaube ich). Ziehe ich jetzt PD2 von High ab und stecke es wieder drauf, leuchtet PB0 oder PB2 (so wie es sein soll). Dummerweise ist das Problem das er ja auch Masse reagieren soll und nicht auf High. Weiß jemand warum er auf High statt auf Masse reagiert? Auch wenn ich andere Kombinationen im MCUCR einstelle folgt kein Unterschied. Ebenfalls macht mich stutzig das manchmal alle leuchten. Heißt das ich habe keinen definierten Eingang an PD2 sobald ich High abziehe. Würde daraus schlussfolgern das Portd nicht richtig konfiguriert ist. Danke für Hinweise/Hilfen. VG Tino
Hi >(Deswegen ist auch in MCUCR nichts >gesetzt, da ISC00 und ISC01 dafür 0 sein müssen). Der externe Interrupt >kann also kommen. Dir ist aber bewusst, das dann Interrupts ausgelöst werden, solange der PIN auf Masse liegt. MfG Spess
Er wird ja gerade nie ausgelöst bei Gnd. Es passiert immer nur was wenn ich den auf High lege, abziehe und wieder auf high. Wenn ich auf Ground anlege gibt es keine Wirkung... :(
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.