mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Taster-Zeit-Abfrage


Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

wie kann ich denn folgendes implementieren:

bei einem kurzen Tastendruck soll eine Funktion aufgerufen werden,
bei einem langen Tastendruck (vielleicht >2 sec) eine andere Funktion.

Jens

Autor: Lars (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du misst die "Drückzeit" und rufst dann beim loslassen des Tasters die 
entsprechende Funktion auf.

Der Trick ist also die Funktion nicht beim drücken des Tasters sondern 
beim loslassen aufzurufen.

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Lars,

dieses Prinzip (Dein sog. Trick) ist mir schon klar, aber mich 
interessiert wie ich das implementiere (interrupt,...)

vielleicht gibts ja schon irgendwo ein beispiel...

Gruß

Autor: Markus Burrer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein interrupt ist nicht zwansläufig notwendig. Das hängt davon ab was 
der Controller sonst noch so zu tun hat. Wenn er sich eh langweilt 
kannst du es einfach so machen das du bei Drücken der Taste in eine 
Schleife springst. In dieser Schleife machst Du folgendes:

1. Abfragen ob die Taste noch gedrückt ist
2. Wurde die Taste losgelassen und der Zählerstand ist noch nicht zu 
groß erste Funktion aufrufen
2. einen Zähler hochzählen
3. wenn der Zähler einen bestimmten Wert erreicht hat zweite Funktion 
aufrufen.

Bevor du diese Schleife aufrufst solltest Du eine kurze Wartezeit 
einbauen damit das Prellen des Tasters nicht stört. 20-50 ms sollten 
reichen.
Hoffe das hilft

Gruß
Markus

Autor: Jonas Diemer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Markus: will nicht meckern, aber "schön" schreibt sich auf englisch 
beautiful (also mit i statt y).

Autor: Markus Burrer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ups :)

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.