Hola:
Pues cosas como estas hacen que me quede con e Basic por la sensillez al programar...
El codigo que puse no creo que sea complejo ni nada por el estilo al momento el RTC empieza a contar desde un valor prefijado que esta justamente en la subrutina grabarRTC, una ves grabados los datos hace una lectura constante...
Define I2C_SCLOUT 1 ;No es necesario resistencia pull-up en SCL
"Estas variables son para las señales de los pines SCL ySDA del RTC
CPIN Var Portb.7 ;pin señal de reloj I2C
DPIN Var Portb.6 ;pin de datos I2C
"esta es una de las lineas de comandos para guardar la info en el RTC
I2CWRITE DPIN,CPIN,%11010000,0,[$00]
I2CWRITE DataPin,ClockPin,Control,{Address,}[Value{,Value...}]{,Label}
donde datapin corresponde al PORTB.7, clockpin al PORTB.g del micro, control es esl byte de control del RTC %11010000 (Propio del fabricante), el siguiente parametro es la posicion de memoria y el ultimo el valor a guardar en HEX.
"esta instruccion es para leer los datos del RTC
I2CREAD DPIN,CPIN,%11010000,0,[segu]
I2CREAD DataPin,ClockPin,Control,{Address,}[Var{,Var...}]{,Label}
los parametros son los mismos salvo el ultimo que es la variable en la cual voy a almacenar el valor leido de la posicion de memoria...
Por el resto del programa no creo que haya inconvenientes porque son solo condicionales para visualizar el valor de los dias meses o años correspondientes al valor leido del RTC....