Autor Tema: como programar DS1307 pbp  (Leído 5164 veces)

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

Desconectado psicowifi

  • PIC12
  • **
  • Mensajes: 56
como programar DS1307 pbp
« en: 13 de Julio de 2010, 23:14:33 »
Saludos....
Tengo un dilema con la programacion del DS1307 y es la siguiente...

regularmente uso para programar la hora en dicho ds1307 la sentencia  rtchour=$10 ejempo para las 10 am hpra militar etc asi con todas posiciones de memoria de dicho reloj . minutos segundos dia mes año etc ok
El problema se me presenta es cuando quiero cargar en alguna de las posiciones del ds1307 el dato porveniente de una variable ejemplo ..

hora var byte
read 0,hora
rtchour = hora

claro esta en la posc de memoria ram 0 tengo un 0A
 
en ese momento todo se complica ya que se programa mal claro esta... y al hacer el conteo no se entiende ya que no se uso el formato directo rtchour = $10

como puedo hacer para que en picbasic pueda grabar correctamente el dato que extraigo de la variable tipo byte...

Ya e intentado varias maneras y en realidad ningura me a funcionado y en las diferentes ecciones del foro no veo nada que me aclare la duda y en internet ufff casi todo para CCS y otros programas pero para picbasic nada que encuentro la solucion a este problema..
Sera que alguien a intentado hacerlo y lo a logrado ..
Otra que se me ocurre es como guardar el dato $10 ejemplo directo en la memoria del pic este dato $10 sale de un contador interno del pic que esta echo en el mismo programa pero al grabarlo en la memoria se graba 0A que es el hex de 10  pero si se grabara el 10 como tal en la memoria no tendria ningun problema
saludos nuevamente y gracias
« Última modificación: 14 de Julio de 2010, 23:02:20 por psicowifi »

Desconectado MAXTORJOE

  • PIC10
  • *
  • Mensajes: 2
Re: como programar DS1307 pbp
« Respuesta #1 en: 19 de Agosto de 2010, 17:25:02 »
Saludos amigo, por lo que leo ya has trabajado antes con este reloj de tiempo real y te ha funcionado, yo estoy peor que tu a mi ni siquiera me visualiza la informacion en elproteus todo va bien pero en fisico me da error y ya he revisado todo fisicamente y he hecho de todo pero siempre me sale 00 00 00 00 todo en cero, podria ayudarme a ver que es lo que me pasa?, gracias de antemano
 

Desconectado tongaston

  • PIC10
  • *
  • Mensajes: 17
Re: como programar DS1307 pbp
« Respuesta #2 en: 28 de Agosto de 2010, 12:01:11 »
Buenas, yo tengo algo hecho para el ds1302 que es I2C, creo que el 1307 es serial, igual les adjunto alguna parte del codigo para que vean si les sirve...

' Reloj LCD usando el Dallas 1302 RTC

define OSC 4

Include "MODEDEFS.BAS" ' Incluye modos Shiftin/out

'Alias 
RST var PORTB.0
IO var PORTB.1
SCLK var PORTB.2

'Variables
rtcyear var byte
rtcday var byte
rtcmonth var byte
rtcdate var byte
rtchr var byte
rtcmin var byte
rtcsec var byte
rtccontrol var byte


Low RST 'Reset RTC
Low SCLK

'Configura tiempo inicial a las 8:00:00AM 07/16/99
rtcyear = $99
rtcday = $06
rtcmonth = $07
rtcdate = $16
rtchr = $22
rtcmin = $45
rtcsec = 0

pause 1000

Gosub SETTIME 'Setea el tiempo

Goto MAINLOOP 'Salteo subrutinas


' Subrutina para escribir el tiempo en el RTC
SETTIME:
RST = 1 'Listo para transferir

'Escritura habilitada
Shiftout IO, SCLK, LSBFIRST, [$8e, 0]

RST = 0 'Reset RTC

RST = 1 'Listo para transferir

'Escribe los 8 registros del RTC ne modo Burst
Shiftout IO, SCLK, LSBFIRST, [$be, rtcsec, rtcmin, rtchr, rtcdate, rtcmonth, rtcday, rtcyear, 0]

RST = 0 'Reset RTC
Return

'Subrutina para leer el timpo del RTC
GETTIME:
RST = 1 'Listo para transferir

Shiftout IO, SCLK, LSBFIRST, [$bf] 'Lee los 8 registros del RTC ne modo Burst
Shiftin IO, SCLK, LSBPRE, [rtcsec, rtcmin, rtchr, rtcdate, rtcmonth, rtcday, rtcyear, rtccontrol]

RST = 0 'Reset RTC
Return

'Programa Principal - Solo actualiza la hora del LCD

MAINLOOP:
Gosub gettime 'Lee la hora en el RTC

'Muestra la hora en el LCD

Lcdout $fe, 1, hex2 rtchr, ":", hex2 rtcmin,":", HEX2 rtcsec

Pause 300 '

Goto mainloop 

End

'hex2 rtcmonth, "/", hex2 rtcdate, "/" , hex2 rtcyear,_
'" ",

Cualquier cosa avisenme y veo si encuentro algo mas