Steigende und Fallende Flanke Abfangen bei dem gleichen Pin

Gast #897525
Hallo,

Bin ich AVR Anfänger (Mit ATmega128). Möchte ich bei dem gleichen Pin 
zuerst fallende Flanke abfangen (und was zu tun). Danach auch steigende 
Flanke (und auch was andere zu tun) usw. (Es ist ein Zyklus.)
Hier brauche ich eigentlich 2 Externel Vector. Wie sieht für diesen Fall 
Source Code aus?

Vielen Dank!!
Gast
Ich antworte mal als absoluter Laie:

Nachdem die erste Flanke erkannt wurde, mit dem Interrupt die Routine 
für die Flankenauswertung des Portpins abändern bzw. einfach toggeln 
lassen.

So ändert sich bei jeder Flankenänderung auch die Auslösung des 
Interrupts, der eine Portpin reagiert somit auf die steigende und 
fallende Flanke.

Ein Beispiel kann ich leider nicht geben, aber das Prinzip sollte 
funktionieren.

MFG
Marco
Die externen Interrupts 4-7 können so konfiguriert werden, dass sie auf 
beide Flanken reagieren. Siehe Datenblatt.

Frage ist allerdings, was Du zwischen den Flanken tun willst. Wenn es 
eine Periodendauermessung werden soll, dann nimm die Input 
Capture-Funktion.
Gast
Danke für die Beantwortung!

Ich muss die "steigende" und "fallende" Fälle unterscheiden. Es gibt für 
jeweilige Fall nur eine einfach Operation für andere 2 Pins (von H nach 
L).
Ju wrote:
> Ich muss die "steigende" und "fallende" Fälle unterscheiden.
Wenn gewährleistet ist, dass zwischen zwei Flanken genug Zeit vergeht, 
dann ist es doch kein Problem, im Interrupt Handler den Zustand des Pins 
abzufragen. Dann weißt Du auch, ob es eine steigende oder eine fallende 
Flanke gewesen ist.
Gast
Das Problem ist, habe ich bei Hardware Design schon INT1 ausgewählt. :)
Deswegen gibt es jetzt schon zuviel Arbeit für mich, wenn ich jetzt die 
Pin wechseln.
Ju wrote:
> Das Problem ist, habe ich bei Hardware Design schon INT1 ausgewählt. :)
> Deswegen gibt es jetzt schon zuviel Arbeit für mich, wenn ich jetzt die
> Pin wechseln.
Dann musste den Interrupt eben auf eine Flanke konfigurieren (die 
ISC-Bits entsprechend setzen) und im Interrupt Handler jeweils die 
Flankenrichtung umschalten. Hat sogar den Vorteil, dass Du den Pin nicht 
zusätzlich noch mal einlesen musst.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 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.