Flankenauswertung

#3370150
Lesenswert?
• ▲
▼
David schrieb:
> Habe keine Ahnung wie ich anfangen soll...


Grundsätzlich:
mit der Überlegung, was denn eine Flanke aus Sicht eines Programms 
überhaupt ist. Woran kann man eine Flanke erkennen?

Dann mit
1
int main()
2
{
3

4
}

der Initialisierung der beteiligten Port-Komponenten und der Abfrage des 
betreffenden Pins. Und dann überlegt man sich, wie man die 
Flankenerkennung umsetzt. Eine Flanke ist ja nichts anderes als: eben 
noch war der Pin auf 0, jetzt beim nächsten nachsehen ist er auf 1, ergo 
muss da eine 0->1 Flanke gewesen sein. Du wirst also eine Variable 
brauchen, in der du dir den zuletzt am Pin gesehenen Zustand speichern 
kannst um dann den Vergleich durchzuführen.


Wie gesagt: das ist grundsätzlich so.
Denn in der Praxis kommt dann noch Prellen dazu, und dann wird die 
vermeintlich einfache Aufgabe plötzlich recht knifflig, wenn man es 
vernünftig lösen will.
#3370371
Lesenswert?
• ▲
▼
Hi
So ganz verstehe ich das nicht. Du hast in der Überschrift 
"Flankenauswertung" stehen. Warum setzt du das nicht bei der Suche ein 
und liest erst einmal, was hier und da darüber geschrieben worden ist. 
Das Thema ist bereits mehrfach durchgekaut. So ein wenig lesen solltest 
du schon, denn es ist zwar leicht, sich alles vor die Nase tragen zu 
lassen, aber Freunde machst du dir damit nicht.
Außerden, es ist nicht entscheident, welchen Controller du benutzt, 
sondern die Sprache ist eigentlich Maß der Dinge. Und damit du nicht so 
ganz ohne Hilfe dastehst, hier mal ein Tip.
Du hast eine Ablage der letzten gelesenen Werte aus der IO.
Die neuen Werte verknüpst du Exclusiv - Oder
Änderung = alt eor neu = 1
Das Ergebnis mit und:
Flanke_To_1 = Änderung And Neu
Flanke_To_0 = Änderung And Alt
Danach
Neu nach alt !
So, nun solltest du wissen, wie es geht.
Gruß oldmax

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.