www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Taste "ausbremsen"


Autor: Pirkl Max (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ausbremsen = Entprellen = Debounce !

Siehe Codesammlung

Peter

Autor: Mark Hämmerling (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Pirkl Max (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.