Insertar fecha/hora de compilación en el código en XC8

Estoy en el proceso de escribir código para un reloj en tiempo real, y quiero compilar el código con constantes para la fecha/hora de compilación para grabar en el reloj inmediatamente después de la programación.

Creo que he visto esto antes, pero mis búsquedas han resultado infructuosas. ¿Hay algún tipo de macro de tiempo de compilación que haría esto? Algo como:

rtc.second = __COMPILE_SECOND;
rtc.minute = __COMPILE_MINUTE;
rtc.hour   = __COMPILE_HOUR;
rtc.date   = __COMPILE_DATE;
rtc.month  = __COMPILE_MONTH;
rtc.year   = __COMPILE_YEAR;

Respuestas (1)

De la Guía del usuario del compilador XC8 C , página 229:-

5.14.3 Macros predefinidas

__DATE__ to indicate the current date eg. May 21, 2004 
__TIME__ to indicate the current time eg. 08:06:31

Puede analizar estas cadenas para obtener números compatibles con su rtc, pero ¿cuál es el punto de un reloj de tiempo real que no tiene el tiempo real?

De todos modos, mire esta pregunta de desbordamiento de pila para ver una forma de hacerlo.

Esto funcionará. Y esto es solo para configurar el RTC en compilación. Después de eso, el RTC mantendrá la hora. Esto todavía está en desarrollo temprano y estaba molesto por tener que actualizar constantemente esas constantes antes de compilar para poner la hora correcta.