Autor Tema: ayuda con reloj en basic  (Leído 3362 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado HEIMDAL13

  • PIC10
  • *
  • Mensajes: 26
ayuda con reloj en basic
« 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.

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: ayuda con reloj en basic
« Respuesta #1 en: 02 de Abril de 2009, 12:51:01 »
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
.

Desconectado HEIMDAL13

  • PIC10
  • *
  • Mensajes: 26
Re: ayuda con reloj en basic
« Respuesta #2 en: 02 de Abril de 2009, 13:27:25 »
I no es posible hacerlo sin componentes externos?

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: ayuda con reloj en basic
« Respuesta #3 en: 02 de Abril de 2009, 13:41:15 »
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.
.

Desconectado HEIMDAL13

  • PIC10
  • *
  • Mensajes: 26
Re: ayuda con reloj en basic
« Respuesta #4 en: 02 de Abril de 2009, 15:57:01 »
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

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: ayuda con reloj en basic
« Respuesta #5 en: 02 de Abril de 2009, 17:34:28 »
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
.

Desconectado HEIMDAL13

  • PIC10
  • *
  • Mensajes: 26
Re: ayuda con reloj en basic
« Respuesta #6 en: 03 de Abril de 2009, 10:54:08 »
i como puedo utilizar timer0 i 1 con PBP, porque me parece que solo se puede usar esto en asm no?

Desconectado septiembre_negro

  • PIC18
  • ****
  • Mensajes: 310
Re: ayuda con reloj en basic
« Respuesta #7 en: 03 de Abril de 2009, 16:26:07 »
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
« Última modificación: 03 de Abril de 2009, 16:38:37 por septiembre_negro »

Desconectado HEIMDAL13

  • PIC10
  • *
  • Mensajes: 26
Re: ayuda con reloj en basic
« Respuesta #8 en: 03 de Abril de 2009, 16:33:26 »
ok gracias
« Última modificación: 04 de Abril de 2009, 05:32:35 por HEIMDAL13 »