Die Drehzahlen werden üblicherweise in Umdrehungen pro Minute angegeben, je Sekunde ist das dann nur 1/60 der Umdrehungen bzw. Pulse. Ggf. kann aber der Aufnehmer mehr als 1 Puls je Umdrehung geben.

Der Übliche weg ist es einen Timer durchlaufen zu lassen, und dann jeweils die Zeiten auszulesen und die Differenzen zu bilden. Den Timer sollte man dabei nicht zurücksetzen, sondern besser den Überlauf richtig berücksichtigen - das ist nicht so schwer, aber ggf. je nach Compiler / Sprache etwas verschieden. Wie das in C geht sieht man etwa in Wissens Artikel unter Timer(AVR) - Input Capture. Wegen der recht verschiedenen Drehzahlen wird bei nur einem 16 Bit timer die Auflösung für die hohe Drehzahl eher klein. Da wäre es schon hilfreich die Auflösung des Timers in Software zu erweitern (zählen der Überläufe) oder ggf. alternativ die Zeit für mehr als 1 Periode zu Messen.

Wenn der µC 2 16 Bit Timer hätte, könnte man auch je Drehzahl einen Timer nutzen und so ohne die Erweiterung der Auflösung auskommen. Ein 8 bit Timer hilft aber nicht weiter, denn da kann man auch gleich den 16 Bit timer auf 32 Bit erweitern und damit alle erledigen.