Hoy comencé a usar MPLAB X para programar mis PIC, y encontré una plantilla de código, con múltiples archivos y puntos para completar el código. Antes tenía un solo archivo con mi código. En esta plantilla, donde se supone que debo poner mis bits de configuración, hay el siguiente texto:
/* TODO Fill in your config bits here. Remove #if 0 to embed config words. */
#if 0
/* General syntax for configuration word 1 - Check your device .h file
for an up to date listing of available macros.*/
__CONFIG(FOSC_INTOSC & WDTE_OFF & PWRTE_OFF & MCLRE_OFF & BOREN_OFF);
/* If the device has multiple configuration words, the second macro defines
the second configuration word. Again check your device .h file
for an up to date listing of available macros. */
__CONFIG(WRT_OFF & PLLEN_OFF & STVREN_OFF & BORV_19 & LVP_OFF);
#endif
Realmente no entiendo qué significa "Eliminar #if 0 para incrustar palabras de configuración". significa ... Esto es probablemente algo realmente simple. Intenté buscar en Google y buscar en el manual de compiladores, pero no obtuve ningún buen resultado. Por lo que puedo entender, el código entre #if 0 y #endif nunca se compila. ¿Qué significa esta inserción? ¿Tiene algo que ver con configurar los bits de configuración en el código vs. después?
/* */
no se anida, por lo que si rodea un gran bloque de código/* */
que ya tiene un/* */
comentario dentro, todo no se comentará correctamente. Sin embargo, un enfoque más limpio, para esta biblioteca, habría sido usar en#if defined EMBED_CONFIG_WORDS
lugar de#if 0
y luego (posiblemente en un archivo de configuración separado o algo así) tener una línea como//#define EMBED_CONFIG_WORDS
con un comentario que dice "descomentar esta línea para permitir la inclusión de palabras de configuración".