const int taster = 2;
volatile int fallingEdge = 0;
unsigned long outputTime = 750;
unsigned long now = 0;
unsigned long lastTime = 0;
unsigned long nowISR = 0;
unsigned long lastTimeISR = 0;
unsigned long debounceTime = 50;
void setup() {
pinMode(taster, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(taster), count, FALLING);
Serial.begin(9600);
}
void loop() {
now = millis();
if (now - lastTime >= outputTime) {
Serial.print("Fallende Flanken: ");
Serial.println(fallingEdge);
lastTime = now;
}
}
void count() {
nowISR = millis();
if(nowISR - lastTimeISR >= debounceTime){
fallingEdge = fallingEdge + 1;
lastTimeISR = nowISR;
}
}