Domanda:
Come si impostano i bit di configurazione per un PIC 16F1829 in MPLAB X?
TDL
2012-11-02 08:36:06 UTC
view on stackexchange narkive permalink

Sono nuovo nella programmazione PIC (ma non C, sistemi embedded, ecc.) Sto usando MPLAB X con il PIC16F1829 specificato per il progetto. Ho quanto segue include:

  #include <htc.h> # include <xc.h> # include <pic16f1829.h>__CONFIG (WDTDIS); // Indipendentemente da ciò che utilizzo in questa macro, non verrà compilato  

Non riesco a individuare e definizioni che funzionano nella macro __CONFIG. La documentazione menziona anche #pragma config SOMESETTING , ma non riesco a trovare alcuna impostazione che funzioni. Qualcuno sa se:

  • Mi mancano alcune impostazioni o le includo nel mio progetto? Oppure,
  • se le impostazioni che funzioneranno con questo processore sono documentate da qualche parte?

AGGIORNAMENTO:

Per chiunque altro lo trovi, in base a la documentazione, per questo processore con XC8, il modo corretto per specificare questi bit è con #pragma config

  #pragma config WDTE = OFF # pragma config FOSC = INTOSC  
Che compilatore usi?
Microchip XC8, Hi-Tech PICC o altro? E quale versione di esso? (Anche questo conta)
È Microchip XC8. In base alla risposta selezionata di seguito, la posizione delle informazioni per questo compilatore si trova attualmente in `C: \ Programmi (x86) \ Microchip \ xc8 \ v1.10 \ docs`. Ringrazia tutti!
Quattro risposte:
jimmytony3
2012-12-12 21:33:57 UTC
view on stackexchange narkive permalink

In MPLABX c'è un'altra grande opzione, c'è uno strumento interattivo per la generazione del codice che produce codice da copiare e incollare. Questo strumento è accessibile tramite la barra dei menu: Finestra / Viste memoria PIC / bit di configurazione. da lì sembra simile al di sotto.

Indirizzo | Nome __ _ | Valore | Campo | Opzione | Categoria__ _ _ _ _ _ | Impostazione _
300001 _ | CONFIG1H _ | 07 _ _ | OSC_ | RCIO6_ | Bit di selezione dell'oscillatore | Oscillatore RC esterno

seleziona semplicemente le tue opzioni dalle caselle a discesa delle opzioni e visualizza le modifiche nella colonna delle impostazioni. Quando tutte sono impostate, fai clic su "Genera codice sorgente To Output "quindi copia e incolla

il metodo di justing è migliore per imparare la parte, questo metodo consente ai nuovi utenti di essere operativi più rapidamente. Fai la tua scelta.

Il metodo Genera codice sorgente in output è buono.Grazie
justing
2012-11-02 10:25:26 UTC
view on stackexchange narkive permalink

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.

Cyclops
2019-06-25 10:08:52 UTC
view on stackexchange narkive permalink

MPLAB X permette di generare macro di configurazione per il tuo codice.

Sotto MPLAB X IDE vai a: Windows >> Visualizzazione memoria PIC >> Bit di configurazione >> Si aprirà la finestra di configurazione Imposta le macro di configurazione nella colonna più a destra, sotto la colonna "Impostazioni".

Quindi fare clic sul pulsante "Genera codice sorgente in output" nella parte inferiore della finestra della memoria di configurazione.

Questo stamperà le macro di configurazione in una nuova finestra - "Config Bits Source". Copiare il contenuto di questa finestra Config Source e incollarlo nel file che contiene la routine principale come mostrato di seguito:

  #pragma config XYZ

#include <xc.h>

void main ()
{
.
.
}
 

enter image description here

malloc
2020-04-18 13:31:14 UTC
view on stackexchange narkive permalink

Se hai appena installato un nuovo compilatore MPLAB X IDE v5.35 e XC8 e hai bisogno di uno strumento per impostare quei bit, lo strumento Configuration Bits si trova in:

Produzione >> SET Configurazione bit.

Quindi apre una finestra che mostra la risposta di Cyclops, quindi se fai clic su Generate source code genererà un file che puoi aggiungere al tuo progetto, è qualcosa del tipo:

  // PIC16F1459 Impostazioni bit di configurazione

// Istruzioni di configurazione della riga di origine "C"

// CONFIG1
#pragma config FOSC = ECH // Oscillator Selection Bits (ECH, External Clock, High Power Mode (4-20 MHz): device clock fornito to CLKIN pins)
#pragma config WDTE = ON // Watchdog Timer Enable (WDT abilitato)
#pragma config PWRTE = OFF // Abilita timer di accensione (PWRT disabilitato)
#pragma config MCLRE = ON // Selezione funzione pin MCLR (la funzione pin MCLR / VPP è MCLR)
#pragma config CP = OFF // Protezione del codice della memoria del programma Flash (la protezione del codice della memoria del programma è disabilitata)
#pragma config BOREN = ON // Abilitazione reset brown-out (Reset brown-out abilitato)
#pragma config CLKOUTEN = OFF // Clock Out Enable (la funzione CLKOUT è disabilitata. Funzione I / O o oscillatore sul pin CLKOUT)
#pragma config IESO = ON // Modalità di commutazione interna / esterna (la modalità di commutazione interna / esterna è abilitata)
#pragma config FCMEN = ON // Abilita monitoraggio orologio fail-safe (il monitoraggio orologio fail-safe è abilitato)

// CONFIG2
#pragma config WRT = OFF // Protezione da scrittura automatica della memoria Flash (protezione da scrittura disattivata)
#pragma config CPUDIV = CLKDIV6 // Bit di selezione dell'orologio di sistema della CPU (orologio di sistema della CPU diviso per 6)
#pragma config USBLSCLK = 48MHz // Bit di selezione del clock a bassa velocità USB (il clock di sistema prevede 48 MHz, la divisione per FS / LS USB CLKEN è impostata su 8.)
#pragma config PLLMULT = 3x // bit di selezione multipla PLL (3x frequenza di uscita selezionata)
#pragma config PLLEN = ENABLED // Bit di abilitazione PLL (3x o 4x PLL abilitato)
#pragma config STVREN = ON // Stack Overflow / Underflow Reset Enable (Stack Overflow o Underflow causerà un reset)
#pragma config BORV = LO // Selezione tensione di ripristino brown-out (tensione di ripristino brown-out (Vbor), punto di scatto basso selezionato.)
#pragma config LPBOR = OFF // Ripristino uscita marrone a bassa potenza (BOR a bassa potenza è disabilitato)
#pragma config LVP = ON // Abilitazione programmazione a bassa tensione (programmazione a bassa tensione abilitata)

// Le istruzioni di configurazione #pragma devono precedere gli include file di progetto.
// Usa le enumerazioni del progetto invece di #define per ON e OFF.

#include <xc.h>
 
  • Fai attenzione , Il tuo programma NOT funzionerebbe senza impostare questi pin!


Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...