RPM Interrupt speed limit

Note that if the volatile counter was more than one byte (an int, say), then you would need to disable interrupts to read it as the ATmega328
has a byte-wide memory bus and ints take more than one instruction to read or write to memory.

You could have the ISR use two bytes, and emulate an int. Increment the "low order byte". If it overflows, increment the "high order byte". If the high order byte overflows, you're screwed anyway.