El otro método es medir el tiempo entre pulsos y calcular las RPM, este método tiene más exactitud y más velocidad de refresco del display.
Asi es como dice Chaly... Aca si usarias el TMR y el CCP
me puse a hacer los numeros solo por que me gusta.
Mientras con mi metodo el valor es
Maximo Error en RPM = +- T/60
, donde T es el periodo de muestreo, es decir si tomo valores por 0.5s eso es T, ya que es el error maximo,
Es decir sea cual sea las RPM puedo errarle por 1 en ese tiempo ( ya que estamos midiendo pulsos) y al multiplicarlo por el otro numero asi llegar a los minutos se ve aumentado demasiado.
Siendo mas estricto si es dependiente de las RPM tambien este metodo, pero como me interesaba buscar el error maximo, entonces no lo tome en cuenta.
Mientras midiendo tiempo entre pulsos el error maximo puede ser de 1 ciclo de reloj(suponiendo que al producirse la comparacion con el timer se guarda inmediatamente) ya que ahora medimos tiempos. Tengo que es dependiente de los RPM y de la velocidad del oscilador ( Tclk = 4/Fosc )
Maximo Error en RPM = +- (Tclk * RPM
2) / (1 + Tclk * RPM )
(Sin contar el error de la representacion binaria y los errores que influyan en los calculos al ser de un tamaño limitado)
Grafica del error maximo con Oscilador a 40Mhz y RPM de 0 a 15000
La grafica real sera como un diente de sierra, donde el error minimo es cuando 1/RPM es multiplo de Tclk. Y maximo apenas atravieza ese punto.
Y aca depende que uses, mientras mas frecuencia menor el error. y mientras mas RPM mayor el error.
Ej con 3600 RPM
8Mhz INTOSC: +- 6.46 RPM
48 Mhz HS : +- 1.07 RPM
Puse Maximo por que es exactamente eso, es MAXIMO, puede ser menos o nulo segun las RPM que sean
Sigo sin entender para que es el generador de funciones, si es para simular el motor entonces la frecuencia es igual a las RPM
Y si, faltan parametros ya que no se sabe que esta midiendo ni como, nosotros supusimos que solo media el un paso por 0 ( cuando gira completamente el eje )