- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 4 von 4

Thema: Mehrfachbelegung von Tasten (wie beim Handy)

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    21.07.2005
    Beiträge
    18

    Mehrfachbelegung von Tasten (wie beim Handy)

    Anzeige

    E-Bike
    Hallo,

    ich stehe mal wieder auf dem Schlauch ...

    Ich möchte eine Tastatur, oder einen Eingang abfragen. Dieser Eingang soll, wenn er zweimal innerhalb einer oder zwei Sekunden aktiv wird (Taste gedrückt) einen Ausgang für eine bestimmte Zeit schalten.

    Das mit dem zweimal drücken ist ja nicht so das Problem, aber wie löse ich das mit der Zeit dazwischen ?

    Also einmal drücken - irgendeine Reaktion
    Zweimal in 2 Sekunde gedrückt - andere Reaktion

    Ich habe mal irgendwo gesehen, dass jemand lange und kurze Tastendrücke abfragt, aber das finde ich leider nicht mehr, das müsste ja ähnlich funktionieren, oder ?

    Vieleicht habt Ihr ja ne Idee ?

    Gruß Markus

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Jaecko
    Registriert seit
    16.10.2006
    Ort
    Lkr. Rottal/Inn
    Alter
    42
    Beiträge
    2.009
    Sowas wollt ich auch schon mal machen, dass ich z.B. mit nem Nummernblock Texte schreiben kann à la SMS.
    Gemacht hab ichs noch nicht, aber evtl ne Idee dazu:
    Bei jedem Tastendruck wird eine Variable um 1 hochgezählt. Ein Timer schaut im 1-2 Sekundentakt nach, welchen Wert die Variable hat und setzt die wieder auf 0.
    Ein Problem hierbei ergibt sich noch, wenn der Timer genau zwischen 2x drücken nen Reset macht.

    EDIT: Mit dem lang/kurz abfragen geht genau so, nur andersrum; d.h. der Timer erhöht bei Tastendruck die Variable, der Wert wird dann im Hauptprogramm ausgewertet.
    #ifndef MfG
    #define MfG

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.07.2006
    Alter
    94
    Beiträge
    627
    Also ich habe das mal mit 2x drücken gemacht um einen Sparmodus (ECO) zu aktivieren:

    Code:
    'ECO deaktivieren -> 2 mal drücken
    If Pinc.5 = 1 And Taster1_gedrückt = 0 And Eco = 1 Then
    Taster1_gedrückt = 1                                        'Merker das Taster1 gedrückt wurde (wegen entprellen!!!)
    If Taster1_zähler > 0 Then                                  'wenn zähler größer 0 dann wurde der Taster innerhal einer sek schon mal gedrückt!!!
    Eco = 0                                                     'also ECO Modus ausschalten
    End If
    Taster1_zähler = 80                                         'Zähler auf 80 setzen (100 = ca. 1 sek)
    End If
    ________
    
    Timer1:
    'Tastersteuerung
    If Taster1_zähler > 0 Then                                  'für Wartezeit vom Taster (entprellen u.s.w.)
    Decr Taster1_zähler
    End If
    
    Return
    Tobias
    ...

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    50
    Beiträge
    2.253
    das timeout geht ganz einfach.
    Bei jedem Tastendruck setzt man n Flag auf 0,
    das dann von nem Timer wieder hochgezählt wird,
    solange die "Obergrenze" nicht erreicht ist.
    Die Obergrenze ist dann der Timeout.
    Vor den Erfolg haben die Götter den Schweiß gesetzt

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen