今天,我开始使用MPLAB X对PIC进行编程,并找到了一个代码模板,其中包含多个文件和可填充代码的位置。在我拥有包含我的代码的单个文件之前。在此模板中,我应将配置位放在其中,其中包含以下文本:
/* 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
我真的不明白“删除#if 0以嵌入配置字”是什么。意思是……这很简单。我尝试使用Google搜索,并搜索了编译器手册,但没有得到任何好的结果。据我了解,#if 0和#endif之间的代码永远不会被编译。嵌入是什么意思?它与在代码中设置配置位有关,与之后有关吗?
/* */
它不会嵌套,因此,如果您在/* */
其中包含/* */
注释的大代码块周围,整个事情将无法正确注释掉。但是,对于该库,一种更干净的方法是使用#if defined EMBED_CONFIG_WORDS
代替,#if 0
然后(可能在单独的配置文件中或其他内容中)有一行,//#define EMBED_CONFIG_WORDS
并带有注释,说“取消注释此行以启用配置字的嵌入”。