Hallo, ich weiß nicht wie ich die Interrupt-Eingänge an meinem AVR2313 entprellen kann. Habe mir diverse Beiträge im Forum angeguckt und habe bisher nur Hinweise auf das Entprellen von normalen Port-Pins gesehen. Kann mir jemand weiterhelfen? Gruß Jörg
Hallo! Willst du sie Hard- oder Softwaremässig entprellen? Wenn Softwaremässig, dann einfach beim Aufruf des Interrupts eine kurze verzögerungsschleife einbauen!
Hallo Stefan, danke für die schnelle Rückmeldung. Ich würde die beiden Interrupt-Eingänge lieber Softwaremäßig entprellen. Ich hab mir auch schon ein paar Gedanken gemacht. 1. INT0 wird ausgelöst 2. INT0 abschalten (GIMSK) 3. ein Register mit dem WERT 25 belegen 4. in meiner TIMER0-Routine (alle 1/1000sec) WERT herunterzählen 5. WERT = 0 INT= wieder einschalten Könnte das so klappen? Hat jemand vieleicht so eine Lösung schon mal programmiert? Wie kann ich das INT0 bzw. INT1 Bit im GIMSK setzen bzw löschen ohne ein anderes Bit zu verändern? Gruß Jörg
Hallo! Ja, so könnte das klappen! Einen einzelnen Wert verändern kannst du so: SBR GIMSK,1 ;setzt das erste Bit im GIMSK Register auf 1 CBR GIMSK,5 ;löscht das fünfte Bit im GIMSK Register Grüsse
@Stefan, SBR GIMSK,1 CBR GIMSK,5 hatte ich auch so gedacht aber klappt bei mir nicht (bzw. AVR Studio 4, der sagt immer error: illegal argument type or count Gruß Jörg
Hallo! Da kann ich dir nicht helfen, ich verwende nicht AVRStudio. Schau mal in der *def.inc nach (*ändert je nach Controller z.B. für Mega8: m8def.inc) und such nach dem Eintrag GIMSK, ist der vorhanden?
So lange ein Interrupt aufgerufen ist, sind die anderen doch so wie so gesperrt, oder? Was spricht also dagegen eine kurze Delay-Schleife an den Anfang der Interruptroutine zu stellen und nach ihr den Status des Pins erneut abzufragen? So will ich es gerade auf einem 68HC11 lösen, da der keine verschachtelten Interrupts kann. MfG Mike
@Mike Ich glaube den Pin kann man nicht abfragen. Ist ja schließlich ein Interrupt. Einen Delay möchte ich nicht machen, da ich mit Timer0 1/1000sec zähle. Ich hab das jetzt so wie im Anhang programmiert. Scheint zu funktionieren. Kann jemand da mal drübergucken und mir vieleicht ein paar Tips geben wie man es besser machen könnte. Gruß Jörg
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.