Bascom: Tastenentrpellung + long press Erkennung

Gast #95977
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
Gast #95978
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
Gast #95979
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

Eine eigene Frage? Dieser Thread ist über 22 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.