Hari ini saya mulai menggunakan MPLAB X untuk memprogram PICs saya, dan menemukan templat kode, dengan banyak file dan tempat untuk mengisi kode. Sebelumnya saya punya satu file dengan kode saya di dalamnya. Dalam templat ini, tempat saya seharusnya meletakkan bit Konfigurasi saya, ada teks berikut:
/* 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
Saya benar-benar tidak mengerti apa yang "Hapus # jika 0 untuk menanamkan kata-kata konfigurasi." berarti ... Ini mungkin sesuatu yang sangat sederhana. Saya mencoba googling, dan mencari manual kompiler, tetapi tidak mendapatkan hasil yang baik. Dari apa yang saya mengerti, kode di antara # jika 0 dan # end tidak pernah dikompilasi. Apa arti embed ini? Apakah ada hubungannya dengan pengaturan config-bit dalam kode vs sesudahnya?
sumber
/* */
jangan bersarang, jadi jika Anda mengelilingi blok besar kode dengan/* */
yang sudah memiliki/* */
komentar di dalamnya, semuanya tidak akan berkomentar dengan benar. Pendekatan yang lebih bersih, untuk pustaka ini, akan menggunakan#if defined EMBED_CONFIG_WORDS
daripada#if 0
dan kemudian (mungkin dalam file konfigurasi terpisah atau sesuatu) memiliki baris seperti//#define EMBED_CONFIG_WORDS
dengan komentar yang mengatakan "batalkan komentar pada baris ini untuk memungkinkan embedding kata-kata konfigurasi."Iya.
Bit config adalah register terprogram khusus dalam PIC yang menentukan operasi osilator, deteksi brown-out, + hal-hal lain. Dari salah satu manual referensi : (makro __CONFIG dalam peta C untuk arahan terkait dalam perakitan)
sumber
Anda benar sekali, kode di antara # jika 0 / # endif tidak pernah dikompilasi. Ini cara lain untuk mengomentari blok kode.
Menghapus # jika 0 / # endif akan menyertakan makro __CONFIG yang akan mengaktifkan bit-bit tersebut dalam bit konfigurasi PIC.
sumber