Hola mcaco hice unas pequeños cambios en el sistema de medición y logré arreglar el problema de la simulación, abría un archivo nuevo y salió andando perfectamente debe ser algún bug del PROTEUS. Simulé una señal de 5MHz con un error de 33Hz a 5MIPS que en mi opinión es realmente exacto.
Leyendo algunas notas de aplicación de Microchip y Datasheets los timers que admiten conteo por pulsos externos están diseñados para admitir frecuencia de hasta 50MHz algo realmente sorprendente no creí que se llegara a esas frecuencia. Si mis cálculos no están mal con este métodos e podría medir tranquilamente y muy sobrado esa frecuencia.
Estaba pensando en reducir el muestreo de 1 segundos a 100mS o 50mS, de este modo se reduce el error debido a la menor cantidad de veces que desborda el timer y se podrían hacer 3 o 4 lecturas y sacar un promedio, todo esto daría una frecuencia mucho más exacta y ya estaría terminando con la parte de software. La desventaja es que no se podrían medir frecuencias tan bajas, pero se podría seleccionar entre muestre por ejemplo >100Hz y <100Hz y de acuerdo a eso tomar las muestras cada 100mS o cada 1-2 segundos.
También estuve investigando sobre las etapas de entrada que podríamos utilizar.
Saludos
Edito: descarto la idea de usar una base de tiempos menor a 1 segundo, la razón? Con que alla una variación de un solo pulso o sea un solo Hz en la medición al compensarlo con una división para sacar la frecuencia se desvía mucho de la frecuencia real por ejemplo dando intervalos de 1000Hz - 970Hz en ves de 1000Hz - 999Hz con el método común y sacar un promedio de 10 mediciones sigue dando un error de unos 15Hz contra un error de 1Hz con el método común. A mayores frecuencias el error sigue siendo considerable así que el mejor método es tomar cada 1 segundo.
Leyendo algunas notas de aplicación de Microchip y Datasheets los timers que admiten conteo por pulsos externos están diseñados para admitir frecuencia de hasta 50MHz algo realmente sorprendente no creí que se llegara a esas frecuencia. Si mis cálculos no están mal con este métodos e podría medir tranquilamente y muy sobrado esa frecuencia.
Estaba pensando en reducir el muestreo de 1 segundos a 100mS o 50mS, de este modo se reduce el error debido a la menor cantidad de veces que desborda el timer y se podrían hacer 3 o 4 lecturas y sacar un promedio, todo esto daría una frecuencia mucho más exacta y ya estaría terminando con la parte de software. La desventaja es que no se podrían medir frecuencias tan bajas, pero se podría seleccionar entre muestre por ejemplo >100Hz y <100Hz y de acuerdo a eso tomar las muestras cada 100mS o cada 1-2 segundos.
También estuve investigando sobre las etapas de entrada que podríamos utilizar.
Saludos
Edito: descarto la idea de usar una base de tiempos menor a 1 segundo, la razón? Con que alla una variación de un solo pulso o sea un solo Hz en la medición al compensarlo con una división para sacar la frecuencia se desvía mucho de la frecuencia real por ejemplo dando intervalos de 1000Hz - 970Hz en ves de 1000Hz - 999Hz con el método común y sacar un promedio de 10 mediciones sigue dando un error de unos 15Hz contra un error de 1Hz con el método común. A mayores frecuencias el error sigue siendo considerable así que el mejor método es tomar cada 1 segundo.
Última edición: