www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Bascom: Tastenentrpellung + long press Erkennung


Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,


Ich hab in Bascom eine Tastenentprellung ueber den Timer1 realisiert
(Tim0 und Tim2 meines ATmega 8 werden schon benutzt).


Es funktioniert auch soweit. Den Debounce Befehl konnte ich nicht
nutzen da ich auch erkennen wollte wie lange die Taste gedrueckt wird
um verschiedene Funktionen aufzurufen.

Nun haenge ich fest wie ich erkennen soll ob die Taste >3 Sek gedrueckt
wurde .... Kann mir jemand vielleicht eine Hilfestellung geben?

Hier ein Auszug zur Entprellung der Taste:


Main:
  Do
  If Keypressshort_flag = 1 Then
  If Pinc.5 = 0 Then
  Toggle Portd.3
  End If
  end if

  Keypressshort_flag = 0


  loop
  End

'
********************************************************************
' * Timer 1 ISR


  Tim1_isr:

  Keypressshort_flag = 0
  Incr Nticks
  If Nticks = 500 Then
  Nticks = 0
  End If

  Temp = Nticks Mod 5
  If Temp = 0 Then
  Keypressshort_flag = 1
  End If


  Return


'
********************************************************************


Mfg

Dirk

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich kann zwar kein basic aber wenn du einen timer mit einer definierten
taktung hast kannst du einfach einen zähler einbauen der ab erkennen
einer gedrückten taste bei jedem aufruf des timers hochzählt. wenn die
taste losgelassen wird brauchst du nur noch aus der timerfrequenz und
dem counterwert die sekunden ausrechnen

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

also sollte ich es anders herum machen . Im moment hab ich in der Timer
ISR ein Flag gesetzt wann die Taste abgefragt werden soll in der
Hauptschleife ...

Jetzt soll ich die Inputpins in der Timer ISR abfragen und bei druecken
eine Variable erhoehen .....


oder wie soll ich das verstehen ?

Mfg

Dirk

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.