Autor Tema: Problemas con diseño de Reloj con PIC16f877 (hora - min)  (Leído 5417 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado jrbaquero

  • PIC10
  • *
  • Mensajes: 1
Problemas con diseño de Reloj con PIC16f877 (hora - min)
« en: 19 de Enero de 2004, 18:58:00 »
Gracias a todos, por las respuestas dadas, algo que no les he comentado es que me apresure a hacer la placa, y tengo todo los pines ocupados, ya que este reloj me sirve para hacer un sistema automatico de riego, todo es perfecto a excepción de, este problema, de manera que tengo que solucionarlo solamente con los timers, si tienen un ejemplo en la inicialización correcto del TMR1 sería de gran ayuda, ya que hasta ahora no puedo lograr que éste funcione.
Gracias

Hola, tengo un problema a realizar un reloj el cual me marca la hora, min en un pantalla lcd, éste se me retarda 1min mas o menos en un diá el cual no es conveniete, estoy ulitlizando el TMR0 con la siguiente inicializacion

//configuraci¢n de la Temporizacion 1 segundo
   T0CS=0; //Pulsos de reloj interno Fosc/4 (Temporizador)
   T0IE=1; //Incremento de TMR0 cada flanco ascendente
   PSA=0;  //El divisor de frecuencias se le asigna a TMR0
   PS2=1;  //Divisor de frecuencia 1:256 con PS2:PS1
   PS1=1;
   PS0=1;
   
   GIE=1;  //Permiso global de interrupci¢n activado
   Timer=16; //inicializo el tiempo con valor de 16(Dec)
y en la interrupcion hago lo siguiente

if(T0IF)
{   // activacion de bandera de int.
TMR0 = 12;          // cargo el tiempo 12
T0IF = 0;         // Encero la badera de int.
if(Timer != 0)      // si el tiempo es diferente de cero
Timer--;      // Decremento timer
if(Timer == 0)      // si el tiempo es 1s
{
   Timer=16;   //Cargo el valor de 16 Timer
  Seg=Seg+1;     //acumulo los segundos (sb)
  if(Seg==60)   
{
   if(Menu==1)
   {
      VistaHora=1; //Actualiza hora cada Minuto
   }
   Seg=0;   //encero acumulacion de segundo
   Min=Min+1; //incremento minutos
   if(Min==60)
   {
   Min=0;
   Hora=Hora+1;
   if(Hora==24)
   {
      Hora=0;
      Dia=Dia+1;
                   DiaSemana=DiaSemana+1;
......................................
}
}

NO se cual es el problea de este retrasom, espero que me puedan ayudar con este problema gracias.
Att
Fdo
                     

Desconectado solid84

  • PIC12
  • **
  • Mensajes: 56
RE: Problemas con diseño de Reloj con PIC16f877 (hora - min)
« Respuesta #1 en: 20 de Enero de 2004, 00:06:00 »
que tal jrbaquero por que no pruebas con el timer 1 ya que es mas exacto el 16f877 lo tiene saludos

Desconectado CARLCOX

  • PIC10
  • *
  • Mensajes: 10
RE: Problemas con diseño de Reloj con PIC16f877 (hora - min)
« Respuesta #2 en: 20 de Enero de 2004, 10:02:00 »
HOLA!!

HAZ TRABAJADO O HAZ ESCUCHADO DEL DS1307, ESTE ES UN RELOJ DE TIEMPO REAL, TE DA EL AÑO, EL MES, DIA DE LA SEMANA, HORA EN FORMATO AM O PM O 24H MINUTOS Y SEGUNDOS, TRABAJA CON PROTOCOLO I2C Y ES FACIL DE USAR, SI NECESITAS EL DATASHEET SOLO DILO!!

ESPERO TE SIRVA!!! SUERTE!!

Desconectado Sispic

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1685
    • winpic800
RE: Problemas con diseño de Reloj con PIC16f877 (hora - min)
« Respuesta #3 en: 20 de Enero de 2004, 10:14:00 »
A alguien se le ha ocurrido en usar, o a usado la frecuencia de 50hz. de la red para calcular el reloj entrando los pulsos por rb0 / Interrr.

Creo que podria ser una solución y ahorrase tanto lio de cuarzos y tmr para que se adapte.

Desconectado bagmel

  • PIC12
  • **
  • Mensajes: 56
    • Semaforos los Llanos C.A.
RE: Problemas con diseño de Reloj con PIC16f877 (hora - min)
« Respuesta #4 en: 22 de Enero de 2004, 22:25:00 »
Hola jrbaquero, yo tuve problemas con los relog y el 877 pero utilizando el timer1 y otro cristal adicional solucione todo el problema es super preciso si quieres enviame tu email y te envio el plano y la rutina que utilize con el relog y el lcd funciona cool, estamos para ayudar cualquier cosa pega un grito y te ayudo
La necesidad es la madre de todos los inventos!!!!!!!!!!!!!!

Desconectado davecool_2003

  • PIC10
  • *
  • Mensajes: 12
RE: Problemas con diseño de Reloj con PIC16f877 (hora - min)
« Respuesta #5 en: 02 de Febrero de 2004, 18:49:00 »
Hola. Me llamo David. VEo que has usado el ds1307. Mira tengo un problema. No puedo hacer que funciona para nada no abodece a ningun comando. Aparentemente si recupera la información pero no la graba ni me deja iniciar el conteo con la instruccion 0x90. Tengo conectado al bus I2C una memoria 24LC64 y no tengo problemas  pero el reloj me esta matando. Piedes ayudarme? Yo trabajo con PIC-C de CCS corp.  y el 16F877

Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3495
    • http://www.todopicelectronica.com.ar
RE: Problemas con diseño de Reloj con PIC16f877 (hora - min)
« Respuesta #6 en: 02 de Febrero de 2004, 20:58:00 »
Hola, con respecto a el dato de sispic, yo tengo un reloj que funciona con la red de 50hz, y realmente anda muy bien... solo que hay que ponerlo en hora luego de un corte de energia!...


Norberto
Firmat - Santa Fe - Argentina

www.TodoPic.net

Solo se tiran piedras, al arbol que tiene frutos...

Desconectado davecool_2003

  • PIC10
  • *
  • Mensajes: 12
RE: Problemas con diseño de Reloj con PIC16f877 (hora - min)
« Respuesta #7 en: 03 de Febrero de 2004, 18:22:00 »
Hola. estoy trabajando con el DS1307 ya puedo leer y reprogramar la hora en sus registros pero tengo un problema. se adelanta o almenos eso es lo que parece. Al recuperar los registros de minutos y segundos y presentarlos en pantalla se ve que esta adelantado respecto del reloj de pulsera que utilice para sincronizarlo. tienes alguna idea de lo que me esta sucediendo?

Desconectado davecool_2003

  • PIC10
  • *
  • Mensajes: 12
RE: Problemas con diseño de Reloj con PIC16f877 (hora - min)
« Respuesta #8 en: 03 de Febrero de 2004, 18:26:00 »
Hola bagmel soy davecool quisiera pedirte ayuda con lo del reloj. actualmente uso el ds1307 pero no consigo que mantenga la hora exacta. anteriormente genere  un reloj con instrucciones pero tampoco funcionó ( se atrasaba o se adelantaba) puedes ayudarme ? mi correo es davecool_2003@hotmail.com

Desconectado cucaracha

  • PIC24H
  • ******
  • Mensajes: 1409
    • CUCAWEB
RE: Problemas con diseño de Reloj con PIC16f877 (hora - min)
« Respuesta #9 en: 04 de Febrero de 2004, 09:41:00 »
Para que  no atrase o atrase lo mínimo posible debes de hacer en el pcb lo que te indican para el cristal. Y este debe tener un capacidad de 12,5pF (si mal no recuerdo). Todo viene en el data.
Y prueba con un par de relojes para asegurarte. No te quiero ni contar lo que me ocurrió por comparar con el reloj del PC.

Saludos!!
Saludos desde Huelva (ESPAÑA)

Desconectado davecool_2003

  • PIC10
  • *
  • Mensajes: 12
RE: Problemas con diseño de Reloj con PIC16f877 (hora - min)
« Respuesta #10 en: 04 de Febrero de 2004, 21:22:00 »
Muchas Gracias. Voy a tomar en cuenta esos detalles.
Mira hay una cosa rara en este asunto del reloj, cada vez que lo igualo se mantiene bian + o- un minuto, recupero bien los registros de hora minuto segundos bien pero luego comienza a recuperar datos que al menos para mi no corresponden a la realiadad me saca an el valos de minutoy y segundo valores como 89,
91, 123. cosa que es imposible supuestamente los datos regresan en formato BCD. Inclusive hago una especie de filtrado de los datos para impedir que me llegue basura en cada registro. pero no puedo impedirlo... no te ha pasado nada de eso.. Ya mismo pierdo esperanzas y vulevo a las instrucciones del PIC pero implementando algun algoritmo de corrección de tienpos...no se que hacer.. ayudame

Desconectado cucaracha

  • PIC24H
  • ******
  • Mensajes: 1409
    • CUCAWEB
RE: Problemas con diseño de Reloj con PIC16f877 (hora - min)
« Respuesta #11 en: 05 de Febrero de 2004, 09:21:00 »
Vamos a ir probando. A lo de 89 en los minutos lo puedo incluso entender, pero el resto...
Mira, tu lees en BCD y muestras tal cual el dato. Bien, imagina que tu lectura es 59 minutos en bcd, 59BCD. Sin hacer conversión de ningún tipo 59BCD=01011001BIN=89DEC
Por tanto, convierte el dato a binario después de leerle del DS.
Otra cosa, fíjate que en los días de la semana van del 1 al 7, osea que el cero en ese registro no existe. Vamos, que no escribas un cero en ese registro.

Recuerdo que hace un par de días me pasó una vez esto que tu comentas, lo de aparecer 89 en minutos y segundos. Y la verdad no recuerdo que tocaramos nada por eso ¿¿?? (Estamos en desarrollo, osea unos 15000 cambios en el código al día, o más). Así que quizás pueda ser también por lo segundo que te comento, por lo del día de semana =0. No se.

Prueba.

Saludos!!
Saludos desde Huelva (ESPAÑA)

Desconectado bagmel

  • PIC12
  • **
  • Mensajes: 56
    • Semaforos los Llanos C.A.
RE: Problemas con diseño de Reloj con PIC16f877 (hora - min)
« Respuesta #12 en: 06 de Febrero de 2004, 16:18:00 »
Hola amigos disculpen que no los ayudara antes, adjunto a esto les subo al foro las rutinas del proyecto que realize con un 877, el timer1 y una pantalla lcd para tener un relog de tiempo real, si tienen dudas envieme un correo a bagmel@cantv.net


amigos envienme un correo pq el foro no me deja subir archivos
La necesidad es la madre de todos los inventos!!!!!!!!!!!!!!

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2568
RE: Problemas con diseño de Reloj con PIC16f877 (hora - min)
« Respuesta #13 en: 07 de Febrero de 2004, 03:22:00 »

adolfoadc

  • Visitante
RE: Problemas con diseño de Reloj con PIC16f877 (hora - min)
« Respuesta #14 en: 07 de Febrero de 2004, 06:10:00 »
Lo principal a tener en cuenta cuando se realizan relojes es tener una señal de clock muy estable en el tiempo, es decir utilizar cristales de cuarzo de alta estabilidad con la temperatura. De lo contario las derivas en el tiempo seran considerables.
Hay otra forma que es conseguir un pulso de 1Hz en la entrada de contador, si coges un oscilador de 1Mhz y vas dividiendo la frecuencia por 10 hasta que consigues un pulso por segundo el error que pueda tener el cristal queda divido por 1000000 y por tanto es menor que para cristales de 32KHz. El problema es que ocupa mucho espacio. Los relojes de I2C van muy bien pero se deben utilizar buenos cristales de cuarzo.


 

anything