Forum: Mikrocontroller und Digitale Elektronik Taste "ausbremsen"


von Pirkl Max (Gast)


Lesenswert?

hallo leute

es geht um folgendes:
ich möchte mit ein paar tasten ein LCD steuern. wenn ich aber die taste
drücke trit das ereignis gleich öfter auf. was, wie ich mir denke, daran
lieg das der Atmel zu schnell leuft und die taste nicht schnell genug
losgelassen wird. wie könnte ich also am besten die taste so ausbremsen
damit mir sowas nicht passiert?

mfg

Max

von Peter D. (peda)


Lesenswert?

ausbremsen = Entprellen = Debounce !

Siehe Codesammlung

Peter

von Mark Hämmerling (Gast)


Lesenswert?

Salut,

wartest Du auf Low-Pegel (ich nehme an, Dein Input ist low-aktiv), oder
auf die entsprechende Flanke (also konkret auf den Moment wo der Taster
eingedrückt wird)?

So oder so wirst Du um eine Entprellung nicht herumkommen. Die meisten
mechanischen Taster bergen diese Unsitte, beim Schalten zu prellen
(sowas fällt freilich erst auf wenn eine Logik dahintersitzt, die das
schnell genug auswertet).

Es gibt verschiedene Ansätze, das zu umgehen. Der einfachste: Bei jeder
Detektion des Ereignisses eine gewisse Zeit (einige ms, ausprobieren)
einfach zu warten (danach sollte das Prellen vorbei sein und der Pegel
dauerhaft anliegen). Der sichere: über eine gewisse Zeit samplen
(ebenfalls einige ms) und das Ereignis nur anerkennen, wenn der Pegel
über die gesamte Dauer den gleichen (aktiven) Pegel hatte. Für Deine
Anwendung ist der erste Ansatz der praktischere.

Ansonsten... wie Peter schon meint... einfach mal in der Sammlung
kucken.

Viel Erfolg,
Mark

von Pirkl Max (Gast)


Lesenswert?

hallo

Danke für die schnellen Antworten.
Ich dachte zwar eher an etwas anderes als das entprelle, aber das ich
einfach warten kann, bis die taste wieder losgelassen wird, um die
funktion auszuführen, darauf bin ich nicht gekommen. ;)
gemeint hab ich eigentlih, wie ich es kompensiernekann das ein taster
zu lange gedrückt wird. Aber so müsste es auch gehen.

mfg

max

von Tobi (Gast)


Lesenswert?

duu solltest beide ansätze einbauen:
- warten, dass die taste gedrückt wird
- einige (10-100)ms warten, d.h nix tun, bis die taste nicht mehr
prellt
- deine gewünschte aktion ausführen
- warten auf das loslassen der taste

das klappt einwandfrei und du kannst die warteschleife deinem taster
anpassen

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.