TODOPIC
Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: HEIMDAL13 en 02 de Abril de 2009, 12:42:01
-
hola tengo pensado crear un reloj con un pic 16f84, de momento tengo algunas ideas para hacerlo, como por ejemplo un bucle de 60 veces con pausas de 1 sec, i otros metodos, pero me gustaria que me aconsegarais alguna manera simple para la rutina principal si es posible, es que creo que mis maneras son poco presisas.
-
puedes usar un cristal de 32.768KHz como reloj externo del TIMER1 y mediante interrupción obtener 1 o 2 segundos, o quizá un RTC de ser necesario, o puedes buscar más info por el foro
un saludo
-
I no es posible hacerlo sin componentes externos?
-
claro que es posible, haciéndolo como dijiste contando 60 segundos, o usando solamente el TRM0 en cuenta interna, pero te llevará a "leves" o quizá mayores imprecisiones. Hay un hilo en el foro que propone hacer retardos precisos pero usando un cristal de 3.xxx MHz como OSC del micro.
-
Este codigo estaria bien? o es mejor de otra forma?
codigo:
hours var word
minutes var word
seconds var word
menu:
for seconds = 0 to 60
pause 1000
next
minutes = minutes + 1
if minutes > 60 then inhours
endif
goto menu
inhours:
hours = hours + 1
goto menu
-
quizá funcione, pero me parece que un reloj no se lo hace solamente con retardos, pues lo hará bastante impreciso.
Te recomiendo que le des una mirada a usar la interrupción por el timer0 o timer1 y así no estas "perdiendo el tiempo" del micro ejecutando y ejecutando todo el tiempo retardo tras retardo y lo ocupas con otra tarea nose como sensar algo o mostrar algo por leds o displays, etc.
un saludo
-
i como puedo utilizar timer0 i 1 con PBP, porque me parece que solo se puede usar esto en asm no?
-
no :mrgreen:
Hola en basic tienes el control a todos los recursos del pic, en este mismo foro hay muchos ejemplos de como trabajar con el tmr0 e incluso ya esta echo lo que pretendes , con algunas rutinas adicionales que mejoran la exactitud del reloj.
Además como dato adiciona se pueden incluir rutinas en asm dentro de un codigo en basic si no mal recuerdo con la libreria asm endasm
-
ok gracias