Guten Abend, Folgendes: für ein Projekt brauche ich eine Flankenauswertung, besser gesagt die positive Flanke eines Taster. Wie kann ich dies umsetzen? Programmiersprache: C Programmieroberfläche: Keil uVison 5 uC: STM32G031K6Tx lg Tobias
Indem du die steigende Flanke auswertest, entweder in Software, oder du nimmst die Hardware des Controllers zu Hilfe. Gern geschehen
1 | lastkeystate = getkeystate(); |
2 | . |
3 | . |
4 | while(dorun) { |
5 | dosomething(); |
6 | actkeystate = getkeystate(); |
7 | if (actkeystate != lastkeystate) { |
8 | if (actkeystate == PRESSED) { |
9 | dokeyaction(); |
10 | } |
11 | } |
12 | lastkeystate = actkeystate; |
13 | } |
Tobias K. schrieb: > besser gesagt die positive Flanke eines Taster. Wie kann ich dies > umsetzen? Programmiersprache: C Du merkst dir den "alten Pegel" des Eingangs und vergleichst den mit dem "aktuellen Pegel" des Eingangs. Wenn der alte Pegel low ist und der aktuelle Pegel high, dann hast du eine steigende Flanke. Dann speicherst du dir den "aktuellen Pegel" als "alten Pegel" für den nächsten Vergleich. Dazu musst du den Eingang natürlich laufen abtasten, z.B. in der Mainloop oder in einem Timerinterrupt.
:
Bearbeitet durch Moderator
[ironie] Leider kenne ich mich mit C nicht so aus, aber in meiner kleinen Arduino Welt würde das irgendwie so aussehen:
1 | void loop() |
2 | {
|
3 | counter = flankenerkennung = entprellen = taster; |
4 | }
|
Wobei der Counter dann Ereignisse wirft, welche man vorher z.B per counter.onCount(...) etablieren könnte. [/ironie] :-)
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.