volatile unsigned long countRise = 0;
volatile unsigned long us, prevPulseUs, pulseUs, countRiseCopy;
void setup() {
Serial.begin(115200);
pinMode(2, INPUT);
attachInterrupt(digitalPinToInterrupt(2), pin_ISR, RISING);
}
void loop() {
noInterrupts();
countRiseCopy = countRise;
interrupts();
Serial.println(countRiseCopy);
delay(1000);
}
void pin_ISR() {
us = micros();
if ((us - pulseUs) > 750) { // debounce
prevPulseUs = pulseUs;
pulseUs = us;
countRise++;
}
}