El enfoque más preciso para las velocidades en el rango que está mirando es hacer que cada pulso entrante incremente un contador y bloquee el valor de un temporizador. Muestree periódicamente los valores del contador y del temporizador de bloqueo, asegurándose de que los valores muestreados "van juntos". Por ejemplo, si tiene el contador de captura de pulsos de hardware y los circuitos de captura de pulsos conectados a la misma entrada, puede leer el contador, luego el valor del temporizador capturado y luego leer el contador nuevamente. Si las dos lecturas de contador producen valores diferentes, repita el proceso. El tiempo para volver a intentar el proceso es menor que el tiempo mínimo entre los pulsos de entrada, luego, en el segundo intento, ambos valores del temporizador deben coincidir.
Una vez que haya hecho esto, luego, en el intervalo de actualización deseado, calcule su velocidad en pulsos por minuto como:
Speed = (NewCount-EarlierCount) * TimerCountsPerMinute / (NewTimer-EarlierTimer)
Excepto cuando NewCount es igual a EarlierCount, este enfoque producirá un valor cuya precisión es +/- una marca de temporizador. En otras palabras, si la velocidad de entrada es constante y el temporizador es preciso, la lectura correcta estará en algún lugar entre
Velocidad = (NewCount-EarlierCount) * TimerCountsPerMinute / (NewTimer-EarlierTimer-1)
y
Velocidad = (NewCount-EarlierCount) * TimerCountsPerMinute / (NewTimer-EarlierTimer + 1)
Usando este enfoque, si tiene una base de tiempo de 1MHz, siempre que sus pulsos de entrada lleguen a 10Hz o más, podrá actualizar su pantalla diez veces por segundo y mostrar un valor que sea preciso para la precisión de un cristal típico. Dependiendo de lo que estés haciendo, es posible que desees suprimir las actualizaciones, excepto cuando la diferencia total entre las lecturas visualizadas y reales alcance, por ejemplo, tres unidades en la pantalla (de modo que cuando los valores cambian rápidamente, los números de la pantalla cambian rápidamente, pero si un valor alterna entre 123.4 y 123.5, la pantalla pasaría suficiente tiempo mostrando cada valor que una persona podría ver).