Soy nuevo en el foro de forma que pido disculpas por anticipado si he encajado la consulta en un lugar incorrecto.
Estoy montando un sistema de domótica con una placa Arduino Giga R1, una pantalla Nextion y un buen número de sensores y actuadores.
Mi consulta es si existe alguna forma de acceder a los valores del RTC que trae la propia placa sin emplear librerías. Por más que he buscado por ahí casi siempre se recurre a <mbed_mktime.h>
Si existe, es usando lo que tiene adentro la librería y haciendolo propio.
Cual es el sentido de la pregunta?
SI es una tarea universitaria, entonces tienes que tomar la hoja de datos y leer/escribir los registros usando el tipo de variable que corresonda a cada caso. Eso hacen las librerías.
Quien vas a hacerlo como tu lo pides? Te diría que nadie.
En cuando sale algo nuevo, alguien se toma el trabajo de hacer una librería para facilitarnos las cosas. No al revés.
Hacerlo sin librerías obedece a dos razones posibles para mi gusto:
Tienes poco lugar en la Flash y deseas optimizar.
Quieres mejorar la velocidad de respuesta.
te lo piden como tarea universitaria o de un curso avanzado.
Puede que exista otra razón pero hasta acá me dio la neurona hoy.
Efectivamente @Surbyte, se trata de una de las razones que comentas. El sistema de domótica es para la casa que me estoy construyendo y debe de controlar muchos parámetros (principalmente temperaturas y humedades para cada habitación) y dar salida a los circuitos de suelo radiante, iluminación, programador de vacaciones, antihielo, un registro de algunos parámetros en un USB, etc. y trato de optimizar la respuesta lo máximo posible. De momento tengo algo más de 1300 líneas de código y aunque buena parte de las funciones las tengo espaciadas en el tiempo a base de millis (), temo que acabe siendo demasiado pesado para la placa.
Cuando cree la programación para que la pantalla Nextion se entendiese con Arduino tampoco recurrí a librerías para ganarle algo de velocidad y, de momento, ha ido bien, por eso trataba de ganarle algunos microsegundos al sistema.
Al incorporar la Arduino Giga un RTC interno se me ocurrió que quizás incorporase alguna función propia con un acceso más o menos directo, por ejemplo tal como se inicializan los seriales de la placa y como la única referencia que había encontrado al RTC del Giga es la que indica @tauro0221) buscaba más pistas para descargar la memoria.
Recurriré a una librería sencilla y a ver cómo va.
Bueno, si estas haciendo algo de domotica creo que equivocas la topología.
Tendrias que usar una Raspberry Pi 4 8MB o una PI 5 similar o una NUC para correr algo que se llama Home Assistant. Esto te gestiona todo, pantallas, celulares, tablet, etc.
Luego distribuyen los controles con Arduino, ESPs por todos ladoss y consigues lo que quieres sin complicarte la existencia como lo estas haciendo.
Si algo no tiene la capacidad hoy, no vale la pena pensar como lo estas pensando. Buscas algo que si tenga la capacidad y recalculas.
Ese es mi consejo. Si con libreria no puedes en un Arduino Giga entonces como o de qué manera?
Vas a mejorar algo haciendolo sin librería? Lo dudo. La librería no agrega espacio, en todo caso mira que cosas de la librería no vas a usar y quítalas pero lo demas te ahorrará mucho tiempo.
Mi consejo esta ahi.
Hi,
Si se puede leer y escribir en el RTC usando commandos que tiene wire. No es muy dificil. Yo leo los registro del RTC usando wire y no uso libreria.
Efectivamente es algo parecido al Home Assistant lo que pretendo hacer, solo que algo más casero e infinitamente menos complejo. Tienes razón @Surbyte, en que me tal vez me estoy complicando demasiado pudiendo recurrir a un sofware especializado que hace básicamente lo que necesito pero es una decisión premeditada, sea un reto o una estupidez.
Seguiré tu consejo y emplearé una librería. He encontrado una bastante sencilla que me soluciona el problema, gracias por la ayuda.