Autor Tema: Problema con RTC DS1302  (Leído 2929 veces)

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

Desconectado Carabobo1

  • PIC12
  • **
  • Mensajes: 51
Problema con RTC DS1302
« en: 27 de Noviembre de 2014, 18:47:45 »
- Saludos a Todos, espero que se encuentren Muy Bien. Estoy trabajando con el DS1302 a fin de obtener un Reloj con Formato 12 Horas e indicación A.M. P.M. pero no logro hacer que aparezca el indicador A.M. - P.M. en Pantalla, realmente no sé como programar se bit.
  Estoy usando Compilador CCS Vers 5. La librería del DS1302 es la suministrada por el Compañero VsZeNeR. Agradecería mucho si alguien me informa qué línea debo incluir en la Programación para que se muestre el indicador A.M. - P.M. Gracias, un Abrazo para Todos. 8)

Desconectado KALLITOS

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1256
Re: Problema con RTC DS1302
« Respuesta #1 en: 27 de Noviembre de 2014, 21:12:27 »
Hola, eso lo haces tu como programador, si quieres am y pm pues


Código: C
  1. #define  am   0
  2. #define  pm   1
  3.  
  4. int8 adjunto;
  5.  
  6. if(hora > 0x12)
  7.       {
  8.       hora -= 0x12;
  9.       adjunto = pm;
  10.       }
  11. else
  12.       {
  13.       adjunto = am;
  14.       }

Tan sencillo como eso.

saludos
A un microcontrolador hay que sacarle hasta el ultimo byte....(YO)

Cómo puede ser que un pic24EP512 me quede corto de memoria, señores de MICROCHIP saquen pics con más memoria flash

Más de 45 mil lineas de codigo y aun no termino el equipo, asu mare!!

S34ML08G1TFI200 no necesito mas memoria externa.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: Problema con RTC DS1302
« Respuesta #2 en: 27 de Noviembre de 2014, 22:04:05 »
Eso si esta configurado como 24hs

Citar
The DS1302 can be run in either 12-hour or 24-hour mode. Bit 7 of the hours register is defined as the 12- or 24-
hour mode-select bit. When high, the 12-hour mode is selected. In the 12-hour mode, bit 5 is the AM/PM bit with
logic high being PM. In the 24-hour mode, bit 5 is the second 10-hour bit (20–23 hours). The hours data must be
re-initialized whenever the 12/24 bit is changed.

O si lo pone en 12 al leerlo lee el AM/PM de un bit

Desconectado Carabobo1

  • PIC12
  • **
  • Mensajes: 51
Re: Problema con RTC DS1302
« Respuesta #3 en: 27 de Noviembre de 2014, 22:35:38 »
Hola, eso lo haces tu como programador, si quieres am y pm pues


Código: C
  1. #define  am   0
  2. #define  pm   1
  3.  
  4. int8 adjunto;
  5.  
  6. if(hora > 0x12)
  7.       {
  8.       hora -= 0x12;
  9.       adjunto = pm;
  10.       }
  11. else
  12.       {
  13.       adjunto = am;
  14.       }

Tan sencillo como eso.

saludos



Resp.- Muchas Gracias al Compañero KALLITOS por la Idea: Pensaba que se hacía de otra manera, ya que Leyendo el DataSheet del Dispositivo, me dice que incorpora un indicador A.M./P.M. De igual manera, ellos señalan un Byte con una Configuración, que al hacerla, se obtiene dicho indicador, pero no sé como se Programa. Una vez más, Gracias por el aporte, me es Muy útil.

Desconectado Carabobo1

  • PIC12
  • **
  • Mensajes: 51
Re: Problema con RTC DS1302
« Respuesta #4 en: 27 de Noviembre de 2014, 22:42:50 »
Eso si esta configurado como 24hs

Citar
The DS1302 can be run in either 12-hour or 24-hour mode. Bit 7 of the hours register is defined as the 12- or 24-
hour mode-select bit. When high, the 12-hour mode is selected. In the 12-hour mode, bit 5 is the AM/PM bit with
logic high being PM. In the 24-hour mode, bit 5 is the second 10-hour bit (20–23 hours). The hours data must be
re-initialized whenever the 12/24 bit is changed.

O si lo pone en 12 al leerlo lee el AM/PM de un bit

Resp.- Saludos al Compañero KILLERJC. Precisamente a ese escrito que Publicaste es al que me refiero. No entiendo cómo Programar esa parte, es decir, no hallo cómo establecer el Código para esa Nota establecida por el Fabricante. Aún así, Gracias por el Comentario y por Responder.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: Problema con RTC DS1302
« Respuesta #5 en: 28 de Noviembre de 2014, 00:28:55 »
Ahi te lo dice...

Primero empezamos por :
COMMAND BYTE
En esta seccion muestra como es el codigo del comando, donde ves el bit de start ( bit 7 = 1 ) + bit de lectura escritura, direccion , etc.

Figure 4. Data Transfer Summary
En esa figura te muestra como se manda el dato.. se ve al reves pero es mandarlo como el command byte es..  obviamente sale el ultimo primero asi llega al registro de dezplazamiento que posee dentro ordenado como deberia ser.

Table 3. Register Address/Definition
RTC

Ahi te da los comandos tanto para escribir como para leer, por ejemplo tu caso es: Leer 85h, Escribir 84h  ( si observas el ultimo bit corresponde con el bit de lectura escritura del command byte en todos notas impar en leer y par en escribir)
Ahi tenes que escribir el bit 7, ponerlo en 1 para que sea considerado de 12 horas (Acordate que esta la hora tambien ahi ). Entonces cuando escribas/leas ese registro. el bit 5 pasa a ser el indicador de AM/PM y los 4 bits (0 a 4) las 12 hs.

Y cabe remarcar esto:
The hours data must be re-initialized whenever the 12/24 bit is changed.

Finalmente:
Esto va si queres meterle mano a la libreria, sino haces como te dijo muy bien KALLITOS. Que si no tenes problemas con dedicarle un par de instrucciones al procesador no le veo el por que complicarse modificando la libreria que tenes, a no ser que quieras completarla/modificarla a tu gusto.
« Última modificación: 28 de Noviembre de 2014, 00:31:55 por KILLERJC »

Desconectado Carabobo1

  • PIC12
  • **
  • Mensajes: 51
Re: Problema con RTC DS1302
« Respuesta #6 en: 28 de Noviembre de 2014, 17:03:48 »
Ahi te lo dice...

Primero empezamos por :
COMMAND BYTE
En esta seccion muestra como es el codigo del comando, donde ves el bit de start ( bit 7 = 1 ) + bit de lectura escritura, direccion , etc.

Figure 4. Data Transfer Summary
En esa figura te muestra como se manda el dato.. se ve al reves pero es mandarlo como el command byte es..  obviamente sale el ultimo primero asi llega al registro de dezplazamiento que posee dentro ordenado como deberia ser.

Table 3. Register Address/Definition


RTC

Ahi te da los comandos tanto para escribir como para leer, por ejemplo tu caso es: Leer 85h, Escribir 84h  ( si observas el ultimo bit corresponde con el bit de lectura escritura del command byte en todos notas impar en leer y par en escribir)
Ahi tenes que escribir el bit 7, ponerlo en 1 para que sea considerado de 12 horas (Acordate que esta la hora tambien ahi ). Entonces cuando escribas/leas ese registro. el bit 5 pasa a ser el indicador de AM/PM y los 4 bits (0 a 4) las 12 hs.

Y cabe remarcar esto:
The hours data must be re-initialized whenever the 12/24 bit is changed.

Finalmente:
Esto va si queres meterle mano a la libreria, sino haces como te dijo muy bien KALLITOS. Que si no tenes problemas con dedicarle un par de instrucciones al procesador no le veo el por que complicarse modificando la libreria que tenes, a no ser que quieras completarla/modificarla a tu gusto.

Resp.- OK, Gracias al Amigo KILLERJC por su Respuesta.


 

anything