Oggi ho iniziato a utilizzare MPLAB X per programmare i miei PIC e ho trovato un modello di codice, con più file e spot per riempire il codice. Prima avevo un solo file con il mio codice. In questo modello, dove dovrei mettere i miei bit di configurazione, c'è il seguente testo:
/* 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
Non capisco davvero cosa sia il "Rimuovi #if 0 per incorporare le parole di configurazione". significa ... Questo è probabilmente qualcosa di veramente semplice. Ho provato a cercare su Google e a cercare nel manuale dei compilatori, ma non ho ottenuto buoni risultati. Da quello che posso capire, il codice tra #if 0 e #endif non viene mai compilato. Che cosa significa questo incorporamento? Ha qualcosa a che fare con l'impostazione dei bit di configurazione in codice vs.
/* */
non si annida, quindi se circondi un grande blocco di codice/* */
che contiene già un/* */
commento al suo interno, l'intera cosa non verrà commentata correttamente. Un approccio più pulito, tuttavia, per questa libreria sarebbe stato usare#if defined EMBED_CONFIG_WORDS
invece di#if 0
e quindi (possibilmente in un file di configurazione separato o qualcosa del genere) avere una riga come//#define EMBED_CONFIG_WORDS
con un commento che dice "decommenta questa riga per consentire l'incorporamento delle parole di configurazione".