Página principal
Frecuencímetro 16f628
Frequency_counter
Programación en C y
Ensamblador
xsetaseta@gmail.com
Debo tener fijación por los frecuencímetros, pero
vuelvo a la carga con ellos.
Después de haber realizado el frecuencímetro con el
PIC 16f628 frecupla me he dado cuenta
de que debido a los cambios realizados desde el 16f84 al 16f628,
todo había mejorado. Cuando se utilizaba el 16f84 se
tenía que utilizar el Timer0,
que estaba sincronizado por la frecuencia del reloj interno, con
lo cual se perdían algunos pulsos. Este problema
también me ocurrió con el Atmega88, miATa3 , se perdían pulsos.
Resulta que revisando la estructura del 16f628, resulto que
había incorporado un contador Timer1 que si se
quería no se sincronizaba con el reloj interno,
además de ser de 16 bits.
Ahora todo es mas fácil, les doy las gracias a los
ingenieros de Microchip.
Queda por cambiar la conexión del LCD al PIC y la entrada
de la frecuencia,reprogramando todo el programa, quedando el
circuito como a continuación se muestra.
Esquema del circuito frecupla2.
Una vez simulado el Proteus se monta el prototipo antes de hacer
el circuito impreso.
Prototipo frecupla2.
Se ha realizado dos programas, uno e C y otro en C pero con la
rutina en ensamblador y con cuenta de 3bytes.
La realización en C fue bastante fácil, poner los
contadores de Timer1 a cero, esperar 1 segundo y visualizar el
contenido. Hasta he hecho una rutina que me advierte de si la
escala es incorrecta.
Programa frecupla en C.
El segundo programa hecho también en C, pero con la rutina
en ensamblador es más complejo debido a que también
he incrementado el numero de cuentas a 3 bytes para dar mayor
precisión.
Program frecupla en C 3 bytes.
La comparación entre uno y otro programa es difícil
de precisar.
Cuando la cuenta es de 3 bytes y con frecuencias altas, la
precisión de los cristales es un quebradero de cabeza.
Comparas dos cristales de 16Mhz de diferentes marcas y el
resultado no es el mismo.
Para una mayor precisión deberíamos colocar
condensadores ajustables en el cristal de procesador.
En conclusión , la precisión de utilizar un 16f84 a
utilizar el 16f628 es abismal, no hay color, los pulsos no se
pierden. Muchos montajes no han aprovechado las ventajas del
16f628, solo han sustituido un procesador por otro sin
reprogramar.
Entre utilizar un programa u otro es un dilema. El primer programa
cuenta en 2bytes (65536) y el segundo 3bytes (16millones).
Realmente las precisiones de los cristales no dan para tanto por
lo cual daría lo mismo el de 2bytes o el de 3bytes.
Próximamente lo montare en circuito impreso, hasta
entonces...
Saludos
SETA43
Juan Galaz