Сегодня я начал использовать 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
с комментарием: «раскомментируйте эту строку, чтобы включить вложение слов конфигурации».Да.
Конфигурационные биты - это специальный запрограммированный регистр в PIC, который определяет работу генератора, обнаружение отключения и другие вещи. Из одного из справочных руководств : (макрос __CONFIG в C соответствует соответствующей директиве в сборке)
источник
Вы совершенно правы, код между #if 0 / # endif никогда не компилируется. Это еще один способ закомментировать блок кода.
Удаление #if 0 / # endif будет включать макросы __CONFIG, которые активируют эти биты в битах конфигурации PIC.
источник