Forum: Mikrocontroller und Digitale Elektronik Taster Abfrage


von Heinz (Gast)


Lesenswert?

Hi Leute,
bin dabei ein Programm zu schreiben, mit dem ich taster abfragen
möchte! sweit läuft das Programm auch aber ich möchte gern das Display
was anzeigt erst wenn die Taste losgelassen wird und nicht direkt beim
Drücken! Hat jemand eine Idee wie das In C Sprache aussehen kann??
bei mir ist das ja so, dass ich mit einer if Abfrage der Taster abfrage
ob es auf null ist dann.....
Danke

von Karl H. (kbuchegg)


Lesenswert?

Der springende Punkt ist, dass du den
Eingang an dem der Taster haengt ueberwachen
musst. Du musst also zu jedem Zeitpunkt
wissen, in welchen Zustand er kurz vorher
war. Was dich dann interessiert ist ein Zustands-
wechsel. Nur dann wenn der Zustand von gedrueckt
zu nicht gedrueckt wechselt, loest du die
Aktion aus.

von Michael (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Heinz,

anbei ein älteres Programm, was in der Codesammlung nicht mehr zu
finden ist.
In Zeile 78

  aenderung = (temp_tasten ^ entprellte_tasten) & temp_tasten;

werden die positiven Änderungen durch '& temp_tasten' ausmaskiert und
anschließend verarbeitet. Durch ändern der Maske auf
'&entprellte_tasten' würden die Tasten erst beim Loslassen gewertet
werden.
Wenn man die Maske ganz wegläßt, kann man bei der anschließenden
Auswertung prüfen, ob ein Tastendruck oder ein Loslassen stattgefunden
hat und entsprechend andere Codes ausgeben.
Ich hoffe, Du kannst das Programm gut verdauen :-)

von Rainer S. (rainersp)


Lesenswert?

Ansatz: Du speicherst Dir den Zustand Z des Tasters.

Ablauf:
1. Z auf aktuellen Zustand des Tasters initialisieren.
2. Neuen Zustand Z' der Tasters einlesen.
3. Wenn Z=gedrückt und Z'=losgelassen, dann Ausgabe auf Display
durchführen.
4. Z <= Z'
5. Schritte 2-4 wiederholen.

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
Noch kein Account? Hier anmelden.