Hola a Todos!
Antes que nada quiero agradecerles a todos los que han aportado información sobre el tema. He utilizado estas librerias en un 18f452 sin inconvenietes salvo el siguiente detalle en la rutina de configuracion de fecha y hora:
Las variables utilizadas en el programa compilado en CCS son:
fecha
fecha [1] -> Mes
fecha [2] -> Año
fecha [3] -> Dia de la Semana (cualquier valor por no ser utilizado. En mi caso = 2)
hora
hora [1] -> Min
hora [2] -> Seg
La rutina realiza las siguiente acciones:
1) Lee mediante ds1307_get_date(fecha
- ,fecha [1],fecha [2],fecha [3]); y ds1307_get_time(hora
- ,hora [1],hora [2]); los datos actuales y los presenta en un display.
3) Si el usuario produce un cambio de una de estas variables se controla que:
0 < Dia =< 31 (Entre 1 y 31)
0 < Mes =< 12 (Entre 1 y 12)
0 <= Año <= 99 (Entre 0 y 99)
0 <= Hora < 24 (Entre 0 y 23)
0 <= Min y Seg <60 (Entre 0 y 59)
4) y se invoca a la funcion ds1307_set_date_time(fecha
- ,fecha [1],fecha [2],fecha [3],hora
- ,hora [1],hora [2]);
5) Luego se vuelve al paso 1) apareciendo en pantalla los valores actualizados.
Mi pregunta (conceptual) es:
Si yo ingreso por ejemplo como fecha el 30 de febrero (Fecha Erronea) porque el RTC lo escribe y continua avanzando desde esa fecha? Existe alguna forma o algun registro para conocer si hay algun error o exepcion ya que sino deberia tener un calendario incorporado en mi programa para testear esos casos especiales que la verificacion detallada anteriormente no contempla.
Agradezco sus propuestas de solucion y les deseo una Feliz Navidad y un prospero Año Nuevo.