Hallo, ich möchte am Atmega168 einen ext. Interrupt am PCint18 (PD2) auslösen, fallende Flanke. Er löst aber bei beiden Flanken aus. Wo liegt mein Fehler? Config Int2 = Falling Enable Interrupts Enable Pcint2 On Pcint2 Interrupt2 Pcmsk2.2 = 1 Danke Peter
> ich möchte am Atmega168 einen ext. Interrupt am PCint18 (PD2) auslösen, > fallende Flanke. > Er löst aber bei beiden Flanken aus. > Wo liegt mein Fehler? Wenn die Konfiguration wirklich stimmt dann prellt wahrscheinlich dein Signal. Woher kommt es? Von nem Taster? Lange Leitung? MfG Falk
Hallo Falk, mein Signal kommt von einem Microtaster, der auf der selben Platine sitzt. Habe ihn schon mit einem C 100n entprellt. Der Int reagiert aber immer noch auf beide Flanken. Kann man die Flanken direkt über ein Register auswählen? Und über welches? Wie müssen die Bit`s für Pcint2 fallende Flanke sitzen? Gruß Peter
Ist dieses Verhalten beim "pin change" Interrupt nicht normal? Ich vermute, dass "Int2" und "Pcint2" zwei verschiedene Paar Stiefel sind - der erste ist wohl der althergebrachte flanken/pegeltriggerbare Interrupt-Eingang, der zweite der nur bei neuen Devices zu findende "pin change" Interrupt.
Die Pin-Change-Interrupts reagieren afaik generell auf beide Flanken. Wenn Du was Flanken-sensitives machen willst, musst Du entweder in der ISR den Pinzustand abfragen oder einen externen Interrupt benutzen. Bei letzteren kann man einstellen, ob sie auf pos., neg. Flanke oder Low-Pegel reagieren sollen. Generell aber wieder mal anzumerken: Externe Interrupts sind zur Abfrage von mechanischen Kontakten eigentlich eher ungeeignet. Besser mit nem Timer ne Zeitbasis erzeugen und alle paar zig Millisekunden die Taster einlesen. Dann kann man sich den ganzen Entprell-Kram sparen.
A.K. hat natürlich auch recht: Du schmeißt da in Deinem Programm was durcheinander! Der Pin-Change-Interrupt 2 und der externe Interrupt 2 haben nichts miteinander zu tun! Und außerdem hat der Mega168 afaik gar keinen externen Interrupt 2...
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.