Il sito Web di Microchip ha un documento denominato Utilizzo del formato, della sintassi e delle definizioni corretti per i bit di configurazione PICmicro che spiega dove trovare le impostazioni di configurazione per il tuo particolare dispositivo.
Ad esempio afferma per i dispositivi PIC16F1 con un compilatore C:
Compilatore C:
Formato: definito nel manuale utente Situato in: C: \ Programmi \ HI ‐ TECH Software \ PICC \\ docs \
Definizione / Sintassi: si trova nel file di intestazione del rispettivo prodotto. Usa il file di intestazione pic16f1xxx.h in: C: \ Programmi \ HI ‐ TECH Software \ PICC \\ include \
Se cerchiamo nel file di intestazione il tuo chip particolare troviamo:
/// Definizioni maschera di configurazione //// Registro di configurazione: CONFIG1 # define CONFIG1 0x8007 // Selezione oscillatore // ECH, clock esterno, modalità ad alta potenza (4-32 MHz): dispositivo clock fornito al pin CLKIN # definire FOSC_ECH 0xFFFF // ECM, External Clock, Medium Power Mode (0,5-4 MHz): clock del dispositivo fornito al pin CLKIN # definire FOSC_ECM 0xFFFE // ECL, External Clock, Low Power Mode (0-0,5 MHz): il clock del dispositivo fornito al pin CLKIN # definisce FOSC_ECL 0xFFFD // Oscillatore INTOSC: funzione I / O sul pin CLKIN # definisce FOSC_INTOSC 0xFFFC // Oscillatore EXTRC: Circuito RC esterno collegato al pin CLKIN # definisce FOSC_EXTRC 0xFFFB // Oscillatore HS, Cristallo / risonatore ad alta velocità collegato tra i pin OSC1 e OSC2 # definisci FOSC_HS 0xFFFA // XT Oscillator, Crystal / reso natore collegato tra i pin OSC1 e OSC2 # definisce FOSC_XT 0xFFF9 // Oscillatore LP, cristallo a bassa potenza collegato tra i pin OSC1 e OSC2 # definisce FOSC_LP 0xFFF8 // Watchdog Timer Enable // WDT abilitato # definisce WDTE_ON 0xFFFF // WDT abilitato durante l'esecuzione e disabilitato in Sleep # definire WDTE_NSLEEP 0xFFF7 // WDT controllato dal bit SWDTEN nel registro WDTCON # definire WDTE_SWDTEN 0xFFEF // WDT disabilitato # definire WDTE_OFF 0xFFE7
// Abilita timer di accensione // PWRT disabilitato # definisce PWRTE_OFF 0xFFFF // PWRT abilitato # definisce PWRTE_ON 0xFFDF // Selezione funzione pin MCLR // La funzione pin MCLR / VPP è MCLR # definisce MCLRE_ON 0xFFFF // La funzione pin MCLR / VPP è ingresso digitale # definire MCLRE_OFF 0xFFBF // Flash Program Memory Code Protection // Program memory code protection is disabled # define CP_OFF 0xFFFF // Program memory code protection is enabled # define CP_ON 0xFF7F // Data Memory Code Protection // Data memory code protection // Data memory code protection is disabilitato # definisce CPD_OFF 0xFFFF // La protezione del codice della memoria dati è abilitata # definisce CPD_ON 0xFEFF // Reset Brown-out Abilita // Reset Brown-out abilitato # definisce BOREN_ON 0xFFFF // Reset Brown-out abilitato durante l'esecuzione e disabilitato in Sleep # definire BOREN_NSLEEP 0xFDFF // Reset brown-out controllato dal bit SBOREN nel registro BORCON # define BOREN_SBODEN 0xFBFF // Reset brown-out disabilitato # definisci B OREN_OFF 0xF9FF // Clock Out Enable // La funzione CLKOUT è disabilitata. Funzione I / O o oscillatore sul pin CLKOUT # definire CLKOUTEN_OFF 0xFFFF // La funzione CLKOUT è abilitata sul pin CLKOUT # definire CLKOUTEN_ON 0xF7FF // Commutazione interna / esterna // La modalità di commutazione interna / esterna è abilitata # definire IESO_ON 0xFFFF // Interno / La modalità di commutazione esterna è disabilitata # definire IESO_OFF 0xEFFF // Abilitazione monitoraggio dell'orologio fail-safe // Il monitoraggio dell'orologio fail-safe è abilitato # definire FCMEN_ON 0xFFFF // Il monitoraggio dell'orologio fail-safe è disabilitato # definire FCMEN_OFF 0xDFFF // Registro di configurazione: CONFIG2 #define CONFIG2 0x8008 // Flash Memory Self-Write Protection // Write Protection off # define WRT_OFF 0xFFFF // 000h to 1FFh write protected, 200h to 1FFFh may be modified by EECON control # define WRT_BOOT 0xFFFE // 000h to FFFh write protected, 1000h a 1FFFh possono essere modificati dal controllo EECON # definire WRT_HALF 0xFFFD
// da 000h a 1FFFh protetti in scrittura, nessun indirizzo può essere modificato dal controllo EECON # definire WRT_ALL 0xFFFC // PLL Enable // 4x PLL abilitato # definire PLLEN_ON 0xFFFF // 4x PLL disabilitato # definire PLLEN_OFF 0xFEFF // Stack Overflow / Underflow Reset Enable // Stack Overflow o Underflow causerà un Reset # define STVREN_ON 0xFFFF // Stack Overflow o Underflow non causerà un Reset # define STVREN_OFF 0xFDFF // Brown-out Reset Voltage Selection // Brown-out Reset Voltage (VBOR) impostato su 1.9 V # definisce BORV_LO 0xFFFF // Brown-out Reset Voltage (VBOR) impostato a 2,7V # definisce BORV_HI 0xFBFF // Low-Voltage Programming Enable // Low-voltage programming enabled # define LVP_ON 0xFFFF // High-voltage on MCLR / VPP deve essere utilizzato per la programmazione # define LVP_OFF 0xDFFF
Un esempio nel documento citato in precedenza è:
__CONFIG (FOSC_INTOSC &WDTE_OFF & PWRTE_OFF & MCLRE_ ON& CP_OFF & BOREN_OFF & CLKOUTEN_ON & IESO_OFF & FCMEN_OFF); __CONFIG (WRT_OFF & VCAPEN_OFF & PLLEN_OFF & STVREN_OFF & LVP_OFF);
Confrontando questo con il file di intestazione sopra puoi vedere cosa abiliterà / disabiliterà ogni macro di configurazione.