vamos a ver que no se que le pasa que me quedao enganchao
ya me va todo los reles botones etc.. me falla la comprovacion de la hora, hice unos calculos para determianr la hora que seria, aqui os dejo el codigo del reloj ( un 1307) y mi codigo de calculo, en el codigo solo sale la configuracion del reloj y la deteccion de la hora, es que no pongo todo xq es muy largo osea quiero que mireis donde me equivoco o que me falla del codigo.
yo creo que es en el calculo que creo que me devolvera "0" en Vez de "00" que serian las 12 de la noche
haver si lo entendeis
"----------------- RELOJ --------------------------------------------------------------------------
CPIN Var Porta.0 "pin señal de reloj I2C
DPIN Var Porta.1 "pin de datos I2C
segu var byte "definir tamaño de variable segundos 1 a 255
minu var byte "variable para los minutos
hora var byte "variable para las horas
diaS var byte "variable día de la semana
diaF var byte "variable día fecha del mes
mes var byte "variable mes
anio var byte "variable año de 2 dígitos
dato VAR BYTE "variable para almacenar dato leído
actualizado VAR BIT "variable para almacenar un 1 o 0
"---------------------------------------------------------------------------------------------------------
B var byte " variable para almacenar la hora que se ha de apagar
A var byte " la hora actual
Zn var byte " Hora final ala que se ah de desactivar
X var byte " Lugar donde guardar un calculo
goto grabarRTC "si es la 1ra vez que corre ir a grabar RTC
"--------------------------------------------------------------------------------------------------------
grabarRTC:
I2CWRITE DPIN,CPIN,%11010000,0,[$00] "setear 00 segundos
Pause 10 "retardo para finalizar grabación
I2CWRITE DPIN,CPIN,%11010000,1,[$59] "setear 30 minutos
Pause 10
I2CWRITE DPIN,CPIN,%11010000,2,[$23] "setear las 13 horas
Pause 10
I2CWRITE DPIN,CPIN,%11010000,3,[$3] "setear día lunes ,D=1,L=2
Pause 10 "M=3 , M=4, J=5, V=6, S=7
I2CWRITE DPIN,CPIN,%11010000,4,[$8] "setear día 27 del mes
Pause 10
I2CWRITE DPIN,CPIN,%11010000,5,[$11] "setear mes septiembre
Pause 50
I2CWRITE DPIN,CPIN,%11010000,6,[$05] "setear año 04
Pause 10
I2CWRITE DPIN,CPIN,%11010000,7,[$10] "control %00010000 para
Pause 10 "encender el led cada 1 seg.
goto inicio "Salta a Inicio
INICIO:
I2CREAD DPIN,CPIN,%11010000,0,[segu] "leer los datos de mem. 0,
I2CREAD DPIN,CPIN,%11010000,1,[minu] "1,2,..y guardarlos en sus
I2CREAD DPIN,CPIN,%11010000,2,[hora] "respectivas variables
I2CREAD DPIN,CPIN,%11010000,3,[diaS]
I2CREAD DPIN,CPIN,%11010000,4,[diaF]
I2CREAD DPIN,CPIN,%11010000,5,[mes]
I2CREAD DPIN,CPIN,%11010000,6,[anio]
goto start
Start:
testC1:
I2CREAD DPIN,CPIN,%11010000,2,[hora] "Lee que hora es ( 2 digitos ) y lo gurada en "hora"
If PORTB.7 = 1 then reset "Si es PORTB.7 esta a "1" saltamos a reset
B = 1 "Numero de horas de la pausa
A = hora "La hora actual
X = A + B "Calculo de horar
If X >= 24 then calculo
calculo: Zn = X - 24 "Si X es mas grande o igual que 24 le restamos 24
If X < 24 then sigue
sigue: Zn = X "si X es mas pequeña que 24 se queda igual
if hora <> Zn then testC1 "Comprueva si la hora es "X" donde "X" la hora que quieres que se apague si no lo es salta a testC1
High 1 " Desactiva el rele 1
High 2 " Desactiva el rele 2
High 3 " Desactiva el rele 3
High 4 " Desactiva el rele 4