I suggest you only detect the rising interrupt and record the value of micros(). Calculate the time since the previous interrupt. If the time is very much shorter (say less than a quarter) of the previous interval then you have the double pulse. Something like this
void myISR() {
isrPulseMicros = micros();
newPulse = true;
}
and in loop() include this code
if (newPulse == true) {
prevPulseMicros = latestPulseMicros; // save the last value
noInterrupts();
latestPulseMicros = isrPulseMicros;
newPulse = false;
interrupts();
pulseCount ++;
latestIntervalMicros = latestPulseMicros - prevPulseMicros;
if (latestIntervalMicros < prevIntervalMicros / 4) {
// we have the double pulse
pulseCount = 0;
// do whatever needs to be done
}
prevIntervalMicros = latestIntervalMicros;
}
...R