- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 10 von 20

Thema: ATTiny13A Schalter abfragen/entprellung mit Variablen

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.698
    Hallo Dennis, willkommen im Forum!
    ... Vielleicht kann mir jemand einen Denkanstoß geben? ...
    Zuerst kurz und schnell zum Problem (bei mir kommen Prellprobleme ohne Entprellen fast nicht vor - seltsam). Eine pfiffige Lösung zum Entprellen ist es, die Taste mehrfach abzufragen (vielleicht quick´n-dirty ...) :

    if ( (taste-an) || (taste-an) || (taste-an) ) { irgendwas(); }
    das steht irgendwo in den Tiefen des Forums als :
    while((PollSwitch() == 0) || (PollSwitch() == 0) || (PollSwitch() == 0))

    So ne Lösung läuft auf meinem Pacer total problemlos - der Pacer hatte anfangs auch nen tiny13.

    Noch ein bisschen wie ich mir die Tastenbedienung zurecht gestrickt habe :
    Code:
    // ...
      #define IsBitSet(ADDR,BIT)     (((ADDR)  &  (1<<BIT))?1:0)    // Fragt Bit = 1?
      #define IsBitClr(ADDR,BIT)     (!((ADDR)  &  (1<<BIT))?1:0)   // Fragt Bit = 1?
    // ...
      #define PrtTAST       PIND    //
      #define Tst_1            6    //
      #define Tst_2            7    //
    // ...
      #define Taste1_an     IsBitClr (PrtTAST, Tst_1)       // Taster 1 gedrückt ??
      #define Taste1_aus    IsBitSet (PrtTAST, Tst_1)       // Taster 1 gelöst ??
      #define Taste2_an     IsBitClr (PrtTAST, Tst_2)       // Taster 2 gedrückt ??
      #define Taste2_aus    IsBitSet (PrtTAST, Tst_2)       // Taster 2 gelöst ??
    //... oder mit Buchstaben (verwende ich mittlerweile bei Tasten lieber) :
      #define TasteA_an     IsBitClr (PRTtstLCD, Tst_A)     // Taster A gedrückt ??
      #define TasteA_aus    IsBitSet (PRTtstLCD, Tst_A)     // Taster A gelöst ??
      #define TasteB_an     IsBitClr (PRTtstLCD, Tst_B)     // Taster B gedrückt ??
      #define TasteB_aus    IsBitSet (PRTtstLCD, Tst_B)     // Taster B gelöst ??
    // ... und das geht NOCH deutlich kürzer in dieser Form :
      #define TAan          IsBitClr (PRTtstLCD, Tst_A)     // Taster A gedrückt ??
      #define TAaus         IsBitSet (PRTtstLCD, Tst_A)     // Taster A gelöst ??
      #define TBan          IsBitClr (PRTtstLCD, Tst_B)     // Taster B gedrückt ??
      #define TBaus         IsBitSet (PRTtstLCD, Tst_B)     // Taster B gelöst ??
    // - - - - - - - - - - - - - - -
    // Da dies keine Funktion ist, erfolgt der Aufruf so (NUR beispielsweise) :
    // - - - - - - - - - - - - - - -
    // ...
        if ( TAan ) off = 99;   // Taste A gedrückt ?? Ausgangsflag setzen
        while ( TAan ) {}       // Weiter nur mit gelöster Taste
        if ( off == 99 )            //
        {                           //
          off       = 0;            //
          break;                    //
        }                           //
    Hoffentlich hilfts Dir bei Deiner Tastendrückerei.

    Nachtrag: Dein 150µs-wait für die Entprellung ist schon ok, beim Tastendrücken hat der Controller sozusagen alle Zeit der Welt. Ich orientiere mich bei Mehrfach-Tastendruck am Zeitschema meiner TV-IR-Fernbedienungen. Die senden bei gedrückter Taste etwa alle 100ms - 150ms (MILLI-) ein Signal, wenn man mehrere, unterschiedliche Tasten drückt werten die auch ein Toggelbit aus (wurde die Taste zwischendurch gelöst?) und lassen einem z.T über zwei Sekunden Zeit für ein Mehrfachtasten-Telegramm.
    Geändert von oberallgeier (11.06.2014 um 09:18 Uhr) Grund: Nachtrag: Pausen- und andere Zeiten (Tastenhaptik)
    Ciao sagt der JoeamBerg

Ähnliche Themen

  1. Attiny13a RS232
    Von flecralf im Forum C - Programmierung (GCC u.a.)
    Antworten: 1
    Letzter Beitrag: 09.10.2013, 18:27
  2. Variablen ändern sich durch Berechnung anderer Variablen
    Von Amri im Forum C - Programmierung (GCC u.a.)
    Antworten: 0
    Letzter Beitrag: 03.05.2013, 17:30
  3. Kann Schalter nicht abfragen
    Von Icon2k im Forum C - Programmierung (GCC u.a.)
    Antworten: 4
    Letzter Beitrag: 30.07.2010, 17:51
  4. Entprellung
    Von wolfshund im Forum Microcontroller allgemeine Fragen/Andere Microcontroller
    Antworten: 2
    Letzter Beitrag: 08.05.2007, 20:21
  5. Entprellung
    Von djdune im Forum Elektronik
    Antworten: 9
    Letzter Beitrag: 10.06.2004, 21:49

Stichworte

Berechtigungen

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

Labornetzteil AliExpress