Gahhhrrrlic:
Aarg: Are you suggesting that the rule I'm breaking is that I didn't declare the variables in the interrupt "volatile" ?Bulldog: The delay was because if I didn't use it, it was really hard to read the screen because the refresh was so fast the numbers would appear to be a blur and I could never see a number long enough to read it. I'm assuming the problem with delay is that is uses the same timer that micros() does, thus screwing up the counting?
my guess is that a may be incremented twice in your while loop... which begs the question of why you are using that structure, but that probably isn't your problem...
my example leaves the interrupt to do the work, and you just get the last RPM value each time you update your display... kind-of-thing.