Interrupt Atmega168

OP #468658
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
Gast
> 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
OP
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
Gast
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.
Gast
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.
Gast
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...

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 19 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.