Informatikunterricht

am Gymnasium Kirchenfeld

Benutzer-Werkzeuge

Webseiten-Werkzeuge


digitalelektronik:key-repeat

Dies ist eine alte Version des Dokuments!


Tastendruck mit Wiederholung

Das Programm reagiert auf eine gedrückte Taste. Beim erstmaligen Drücken und jeweils nach 500 ms wird ein Zähler um eins erhöht.

const int PIN = 13;
 
// Letzter Zustand der Taste
int lastState;
// Zeitpunkt für nächstes Zählen
unsigned long nextCount;
int count;
 
void setup() {
    pinMode(PIN, INPUT_PULLUP);
    lastState = HIGH;
    nextCount = 0;
    count = 0;
}
 
void loop() {
    int state = digitalRead(PIN);
    // Aktuelle Zeit auslesen
    unsigned long now = millis();
    if (state == LOW && lastState == HIGH) {
        // Taste ist neu gedrückt worden, hochzählen
        count = count + 1;
        // Nächstes mal in 500 ms hochzählen
        nextCount = now + 500;
    }
 
    if (state == LOW && nextCount < now) {
        // Taste ist seit 500 ms gedrückt, hochzählen
        count = count + 1;
        // Nächstes mal in 500 ms hochzählen
        nextCount = now + 500;
    }
 
    lastState = state;
}
digitalelektronik/key-repeat.1429716290.txt.gz · Zuletzt geändert: 2020/10/13 14:25 (Externe Bearbeitung)