volatile unsigned long time1 ;
volatile unsigned long time2 ;
volatile boolean valid1 = false ;
volatile boolean valid2 = false ;
void int1() {
if (!valid1) {
time1 = micros();
valid1 = true ;
}
}
void int2() {
if (valid1 && !valid2) {
time2 = micros();
valid2 = true ;
}
}
void setup() {
attachInterrupt (0, int1, FALLING) ;
attachInterrupt (1, int2, FALLING) ;
Serial.begin(115200);
}
void loop() {
if (valid2) {
Serial.println (time2 - time1) ;
noInterrupts () ;
valid1 = valid2 = false ;
interrupts () ;
}
}ERC Warnings
flop1:CLK: Clock driven by combinatorial logic
flop2:CLK: Clock driven by combinatorial logic