calcular en assembler el periodo de una frecuencia

Hola

En otro post relacionado a la construccion de un frecuencimetro, se comentaba que habia 2 formas de medir una frecuencia:
1º Contar los impulsos durante una constante de tiempo determinado
2º Midiendo el Periodo de dicha frecuencia (medir el tiempo que transcurre entre pulso y pulso)
Este segundo metodo es bastante interesante, sobre todo si se requiere rapidez en tomar la medida. (ver ejemplo)

Sabemos que para conocer la frecuencia sabiendo el periodo tenemos que aplicar la siguiente formula F=1/P

Parece ser que realizar este calculo en C resulta facil, pero yo estaria interesado en saber como se realizaria en assembler.

ejemplo: Regulador de revoluciones x minuto
mediante un teclado introducimos el valor de las revoluciones x minuto que queremos que gire un motor. Este empieza a girar y se muestran las revoluciones sobre un display, y en el momento que llegue a las revoluciones prefijadas se le corta el suministro de tension.

Si en este caso utilizara el primer metodo para calcular la frecuencia, es muy posible que cuando detecte que he superado las revoluciones prefijadas, dichas se encuentren en un valor bastante superior al requerido. Sin embargo con el periodo en un solo giro del motor ya sabre si esta a la velocidad correcta.

saludos
 
Aritmétrica de punto fijo: ¿Para que usar punto flotante cuando el punto puede estar fijo en la cabeza del programador?
La siguiente secuencia converge a la recíproca de N (1/N):

x(0) = 1
x(i+1) = x(i) * (2 - N * x(i))

x(i) será correcto hasta el 2^i bit mas a la derecha.

Ej: para calcular 1/3, hacemos la sequencia:

1
-1 = 1 * (2 - 3 * 1)
-5 = -1 * (2 - 3 * -1)
-85 = -5 * (2 - 3 * -5)
-21845 = -85 * (2 - 3 * -85)
...

Los 16 bits a la derecha de este número están garantizados de ser correctos. La representación binaria de -21845 es
...111111010101010101011

¿No entendiste un joraca? Bueno, yo tampoco, igual ya se fueron del tema. La palabra clave acá es "reciprocal" por si queres buscar mas información en Google, etc.
 
Atrás
Arriba