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)