TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: Carabobo1 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)
-
Hola, eso lo haces tu como programador, si quieres am y pm pues
#define am 0
#define pm 1
int8 adjunto;
if(hora > 0x12)
{
hora -= 0x12;
adjunto = pm;
}
else
{
adjunto = am;
}
Tan sencillo como eso.
saludos
-
Eso si esta configurado como 24hs
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
-
Hola, eso lo haces tu como programador, si quieres am y pm pues
#define am 0
#define pm 1
int8 adjunto;
if(hora > 0x12)
{
hora -= 0x12;
adjunto = pm;
}
else
{
adjunto = am;
}
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.
-
Eso si esta configurado como 24hs
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.
-
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.
-
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.