Then I tried with millis() but to the same results:
// IR TACHOMETER
const byte interruptPin = 2;
volatile int pulses = 0;
int startMillis;
void setup() {
pinMode(interruptPin, INPUT_PULLUP);
Serial.begin(115200);
attachInterrupt(digitalPinToInterrupt(interruptPin), blink, RISING);
}
void loop() {
startMillis = millis();
while (millis()-startMillis < 1000){}
noInterrupts();
Serial.println(pulses*60);
pulses = 0;
interrupts();
}
void blink() {
pulses = pulses + 1;
}