TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: dzepedar en 23 de Febrero de 2005, 22:40:00
-
Hola Todopic:
En primer lugar, muchas gracias por valiosa ayuda.
Respecto de la info que mencionas y que esta en, todopic...,
el link sería este:
http://www.todopic.com.ar/asm/16F87X_ejemplos/rtc_com.txt
Esta bastante explicativo y creo que me ayudará bastante a comprender el RTC.
Como último favor, sería posible que me me puedas postear el
archivo "define.h", que se especifica en el rtc_com.txt dado que
necesito comprender algunas partes que me imagino están definidas
ahí.
Lo otro, te recuerdas que RTC de Holtec utilizaste??. Te lo pregunto para saber si es realmente similar al que estoy usando yo. Por las razones siguientes:
1. Según el programa, rtc_com, la interfaz de com con el rtc
es ¿3-wire (I/O, CLK, RST)?. Bien has de saber, que están los
SPI, I2C, entre otros según los RCT DALLAS.
2. Que pasa con el formato de los registros, serán los mismos?
Bueno creo que eso sería todo, desde ya muchas gracias todo.
Saludos.
DANIEL
Mensaje enviado el 23 de Febrero de 2005 por todopic
Hola Daniel, hace unos años, estube experimentando con los rtc, pero el que emplee (por no conseguir el DALLAS ds1302) fue uno muy similar de de la empresa HOLTEC
En mi pagina, tienes info, ingresa en www.todopic.com.ar en la seccion asembler....
las direcciones de ram, som para guardar por ejemplo horarios de alarmas.... que si se interumpe la alimentacion, el pic se apagaria, pero el reloj no por tenr conectada una pila en su circuito...
tambien podrias guardar en eeprom del pic... pero es una ayuda que te da el reloj...
hay info de manejo de este reloj en basic
cualquier cosa, postea tus inquietudes en el foro ok?
un gran abrazo
Norberto
}
Mensaje enviado el 22 de Febrero de 2005 por dzepedar
Hola todopic:
Miraestoy en vias de hacer un prototipo para realizar un reloj digital, utilizando
un PIC16F873A, para controlar un Reloj de timepo real DS1302 y un módulo LCD
para visualizar la fecha y la hora.
Para ser sincero, tengo lista las rutinas para manejar el LCD, a 4 bits, y algunos
menus del mismo. Pero estoy un poco confundido con el tema del reloj de tiempo
real. En consecuencia, quisera ver la posibilidad si me puedes ayudar con las siguientes dudas (respecto del DS1302):
1º Para el byte de comando, qué bit se transmite primero.
Según el datasheet del fabricante, es el bit menos
siginificativo (LSB) y así hasta llegar al bit MSB, Tengo el
mismo cuestionamiento para los datos recibidos o transmitidos.
Nota: según los diagramas de tiempo, mostrados en el datasheet,
aparece el bit MSB como el primero que se transmite.... ¿será así?.
2º Cuando quiero realizar una operación de lectura/escritura, ¿debo enviar siempre el byte de control?. Este es el registro No. 8 según el fabricante.
3º Es realmente necesario utilizar el modo de escritura/lectura en el modo Burst
o secuencial??.
4º Cual es la utilidad de la RAM de 31 Bytes del DS1302.
Espero no haber sido latero y te agradecería mucho tu ayuda.
Desde ya muchas gracias.
DANIEL
Se que sería pedir demasiado, pero como dicen por ahí, en pedir no hay engaño...asi es que te agradecería si tuviese un programa que manje el relo de tiempo real para ver si lo puedo probar con el PIC16F873....gracias
-
hola mira aca
http://miarroba.com/foros/ver.php?foroid=79706&temaid=2186051
-
Hola Ma-tec:
Primero, gracias por la respuesta.
El programa publicado en el link, que mencionas, lo tenia y lo estuve analizando y me sirvío bastante para enteder como podría obtener/modificar los datos en (o desde) el RTC DS1302 y para tener una idea de como debia hacer mi codigo.
Sin embargo, tengo algunas dudas, al respecto, y son estas:
1º Para que tienes la subrutina RAMIN?
2º En la subruntina LEER, luego de la instrucción:
CLRF NUME ; PARTE CON BYTE EN CERO
es decir, donde consultas por el estado (BTFSS) de RA2 (PIN I/O de RTC),
pienso que no estaría del todo correcto, puesto que el RA2 estaría como salida
y este, antes de realizar la consuta, se debe configurar como entrada, para
recibir el dato del RTC DS1302.
Para lo cual, normalmente me cambio de banco y configuro el TRISA con un UNO
en el correspondiente BIT 2, RA2
3º Esta parte no la entiendo (en negrilla), me refiero al objetivo de la instrucción:
STBIT
MOVLW 08H ; SIETE BITS
MOVWF OCHO
CALL FUERA
BSF STATUS,5
MOVLW 04 ;2 SALIDA
MOVWF PORTA
BCF STATUS,5
CLRWDT
MOVLW 8
MOVWF OCHO
CLRF NUME ; PARTE CON BYTE EN CERO
Colocas un Bit de Inicio, pero porqué debería ser así??. Según el DataSheet del fabricante, no es necesario un Bit de Inico.....espero estar equivocado en mi jucio.
Tengo otras dudas, pero antes de seguir, me gustaría saber si este programa está probado y si funciona sin problemas, puesto que tengo mis dudas por lo
del punto 2.
Hice los cambios que creí pertinentes, como retardos, saque el Bit de inicio, y la
verdad es no tengo solución para mi problema.
Seguiré intentando para ver que puedo hacer y cualquier cosa la publico.
Bueno creo que eso sería todo y desde ya muchas gracias por tu ayuda.
Saludos coridales.
DANIEL ZEPEDA R.
Escrito originalmente por ma-tec
hola mira aca
http://miarroba.com/foros/ver.php?foroid=79706&temaid=2186051
-
hola
el punto 2 y 3 se responden
el reg nume es para dejar el dato que viene desde el reloj
y se limpia antes de recibir
para recibis pones el bit RA,2 como entrada con esto
BSF STATUS,5
MOVLW 04 ;2 SALIDA
MOVWF PORTA
BCF STATUS,5
y antes de salir de la rutina lo dejas como salida con esto
BSF STATUS,5
MOVLW 00 ;TODAS SALIDAS
MOVWF PORTA
BCF STATUS,5
la rutina ramin
escribe el dato 00
en la direccion 8E del RTC