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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren