www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Tastenentprellzeit


Autor: Daniel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Leute, ich weiss, vieles wurde schon erklaert und gefragt, aber ich 
braeuchte eure Hilfe. Und zwar habe ich ein kleines LCD Display mit 4 
Tasten und einem 4Mhz getakteten Mega32. Bei jedem Overflowinterrupt 
mache ich eine Tastenabfrage. Ich verwende diese Delayroutine:

inline uint8_t debounce(volatile uint8_t *port, uint8_t pin)
{
    if ( ! (*port & (1 << pin)) )
    {
        /* Pin wurde auf Masse gezogen, 100ms warten   */
        _delay_ms(30);  // max. 262.1 ms / F_CPU in MHz
        _delay_ms(30);
        if ( *port & (1 << pin) )
        {
            /* Anwender Zeit zum Loslassen des Tasters geben */
            _delay_ms(60);
            _delay_ms(60);
            return 1;
        }
    }
    return 0;
}

Leider muss ich ziemlich lange auf meine Tasten druecken um eine 
Reaktion zu sehen. Ich habe auch die Zeiten schon verkuerzt nur wird es 
damit irgendwie auch nicht besser. Koennte jemand mir vielleicht sagen, 
ob ich die Zeiten noch laenger machen soll, oder eher viel kuerzer. Denn 
ich habe keine Ahnung wie lange ein Schalter ungefaer braucht, oder was 
denn so ueblich ist. Oder sind die Zeiten ok und das Problem liegt wo 
anders.
Danke schon mal!!!

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Daniel wrote:

> damit irgendwie auch nicht besser. Koennte jemand mir vielleicht sagen,
> ob ich die Zeiten noch laenger machen soll, oder eher viel kuerzer.

Was du machen sollst.
Nimm diese Tasten-Abfrage-und-Entprellroutine
http://www.mikrocontroller.net/articles/Entprellun...
und erfreue dich wunderbar entprellter Tasten ohne dass der Prozessor
da irgendwo auf irgendwas gross warten muss.

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.