Vai Indietro   PcTuner Forum > Sezione Hardware > Programmazione PIC
Arcade Registrazione Blogs Regolamento Feedback FAQ Lista Utenti Calendario Segna come Letti

Ultimi 5 blog pubblicati su PcTuner Blog
Data Titolo

Rispondi
 
Strumenti Discussione Modalità Visualizzazione
Vecchio 07-03-2006, 13.43.13   #1
Registered User
 
L'avatar di  Camillo
 

Iscritto da: 31-01-2006
Locazione: Genova
Messaggi: 967
Feedback: (0)
Guida alla CONFIG WORD

Perché non usare i mezzi che l'assembler vi mette a disposizione.
La parola di configurazione in esadecimale è poco chiara e ingestibile.
Il file "processore.INC" fornito dalla Microchip mette a disposizione tante belle
definizioni per sistemare la parola di configurazione; usiamole.
Codice:
   __CONFIG _CP_OFF&_DEBUG_OFF&_WRT_OFF&_CPD_OFF&_LVP_OFF&_BODEN_ON&_PWRTE_ON&_WDT_OFF&_XT_OSC
	;Per __CONFIG vedi: Special Features of the CPU.
Anche questo qui sopra è poco chiaro essendo scritto un pochino compresso per cercare di farlo stare in una riga.
Per ovviare all'inconveniente è possibile dividerlo ulteriormente.
Codice:
#define CONFIG _CP_OFF & _DEBUG_OFF & _WRT_OFF & _CPD_OFF
  __CONFIG CONFIG & _LVP_OFF & _BODEN_ON & _PWRTE_ON & _WDT_OFF & _XT_OSC
	;Per __CONFIG vedi: Special Features of the CPU.

Per suprciuk tu usi questa qui sotto ma quella giusta è quella qui sopra.

Codice:
   __CONFIG _CP_OFF&_DEBUG_OFF&_WRT_OFF&_CPD_OFF&_LVP_ON&_BODEN_ON&_PWRTE_ON&_WDT_OFF&_XT_OSC
__________________
Camillo
Il VeroProgrammatore può contare fino a 1024 con le dita delle mani. Grazie a .mau.
Le donne e i gatti fanno quello che vogliono, gli uomini e i cani dovrebbero rilassarsi e abituarsi all'idea. R.A.Heinlein

Ultima Modifica di Camillo : 10-03-2006 15.36.03.
Camillo Non in Linea   Rispondi Citando
Vecchio 09-03-2006, 20.59.15   #2
Super Moderator
 
L'avatar di  FluidGuitar
 

Iscritto da: 04-01-2001
Locazione: Torino
Messaggi: 4,023
Feedback: (0)
Credo che questo topic di Camillo se messo un po' in ordine possa diventare un'utile guida.

Ogni PIC ha una locazione della memoria riservata a contenere le informazioni relative alla configurazione.
Si tratta di una locazione al di fuori dell'area di programma e quindi vi si può accedere solo in fase di programmazione e non a run-time.
Per impostare tale valore si usa, riferendomi all'asm di mplab, una direttiva specifica la

__CONFIG

Quindi la direttiva config accetta come argomento un valore a 14 bit (se il core del microcontrollore è a 14 bit) che può essere fornito in binario, decimale, esadecimale oppure utilizzando una notazione simbolica che cercherò di illustrare di seguito caldeggiandone l'utilizzo

Le costanti simboliche che si utilizzano per "comporre" la config word non sono una mia scelta arbitraria, ma sono definite all'interno del file "include" che normalmente viene linkato in un programma asm ed è specifico per ogni microcontrollore.
Nel file include sono definite le costanti simboliche per identificare i vari registri del pic e spesso anche i singoli bit di ogni registro.
Nel nostro caso ci si riferisce ai singoli bit del registro di configurazione.

Codice:
_CP_ALL                      EQU     H'1FFF'	; Code Protect On
_CP_OFF                      EQU     H'3FFF'	; Code Protect Off
_DEBUG_OFF                   EQU     H'3FFF'	; In Circuit Debugger Off
_DEBUG_ON                    EQU     H'37FF'	; In Circuit Debugger On
_WRT_OFF                     EQU     H'3FFF'    ; No prog memmory write protection
_WRT_256                     EQU     H'3DFF'    ; First 256 prog memmory write protected
_WRT_1FOURTH                 EQU     H'3BFF'    ; First quarter prog memmory write protected
_WRT_HALF                    EQU     H'39FF'    ; First half memmory write protected
_CPD_OFF                     EQU     H'3FFF'	; Data Memory Code Protection Off
_CPD_ON                      EQU     H'3EFF'	; Data Memory Code Protection On
_LVP_ON                      EQU     H'3FFF'	; Low Voltage Programming On
_LVP_OFF                     EQU     H'3F7F'	; Low Voltage Programming Off
_BODEN_ON                    EQU     H'3FFF'	; Brown Out Reset On
_BODEN_OFF                   EQU     H'3FBF'	; Brown Out Reset Off
_PWRTE_OFF                   EQU     H'3FFF'	; Power Up Timer Off
_PWRTE_ON                    EQU     H'3FF7'	; Power Up Timer On
_WDT_ON                      EQU     H'3FFF'	; Watch Dog Timer On
_WDT_OFF                     EQU     H'3FFB'	; Watch Dog Timer Off
_RC_OSC                      EQU     H'3FFF'	; RC Oscillator
_HS_OSC                      EQU     H'3FFE'	; HS Oscillator
_XT_OSC                      EQU     H'3FFD'	; XT Oscillator
_LP_OSC                      EQU     H'3FFC'	; LP Oscillator
Il significato di ciascun settaggio è ampiamente descritto nei vari datasheet ed esula dall'intento del presente thread.

Per impostare la configurazione desiderata è quindi sufficiente concatenare le costanti simboliche opportune mediante la seguente sintassi (che poi è quella postata da Camillo poco sopra):

Codice:
 __CONFIG _CP_OFF & _DEBUG_OFF & _WRT_OFF & .... ecc. ecc....
Questo semplice accorgimento vi permette di tenere costantemente sott'occhio la configurazione del pic senza avere sempre a portata di mano il datasheet nè fare calcoli di conversione.
Utilissimo se prendete codice scritto da un po' di tempo di cui non vi ricordate i particolari e ancor di più se il codice è scritto da altri e per pic con i quali non avete grande familiarità.
__________________

Tu non sai niente, Jon Snow!
FluidGuitar Non in Linea   Rispondi Citando
Vecchio 12-03-2006, 18.40.13   #3
Registered User
 
L'avatar di  Camillo
 

Iscritto da: 31-01-2006
Locazione: Genova
Messaggi: 967
Feedback: (0)
Includo un'esempio di come viene trattata la configurazione usando il C18.
Questo è utilizzato da me per il PIC18F4620 che la vuole su 14 byte.

Codice:
#pragma romdata configuration = 0x0300000
const rom char config[]={
  0xFF,
  OSC_XT_1H,
  BORV_43_2L & PWRT_ON_2L & BOREN_SBORDIS_2L,
  WDT_ON_2H & WDTPS_256_2H,
  0xFF,
  LPT1OSC_ON_3H & MCLRE_OFF_3H & PBADEN_OFF_3H & CCP2MX_PORTC_3H,
  XINST_OFF_4L & STVREN_ON_4L & LVP_OFF_4L & DEBUG_OFF_4L,
  0xFF,
  CP0_OFF_5L & CP1_ON_5L & CP2_ON_5L & CP3_ON_5L,
  CPB_OFF_5H & CPD_OFF_5H,
  WRT0_OFF_6L & WRT1_OFF_6L & WRT2_OFF_6L & WRT3_OFF_6L,
  WRTC_OFF_6H & WRTB_OFF_6H & WRTD_OFF_6H,
  EBTR0_OFF_7L & EBTR1_OFF_7L & EBTR2_OFF_7L & EBTR3_OFF_7L,
  EBTRB_OFF_7H
};
Capite che trattare sto coso in esadecimale sarebbe follia.
__________________
Camillo
Il VeroProgrammatore può contare fino a 1024 con le dita delle mani. Grazie a .mau.
Le donne e i gatti fanno quello che vogliono, gli uomini e i cani dovrebbero rilassarsi e abituarsi all'idea. R.A.Heinlein
Camillo Non in Linea   Rispondi Citando
Vecchio 14-03-2006, 17.03.38   #4
Registered User
 
L'avatar di  Camillo
 

Iscritto da: 31-01-2006
Locazione: Genova
Messaggi: 967
Feedback: (0)
Oltre al CONFIG anche gli altri registri possono essere trattati nella stessa maniera.

Quelle che seguono sono delle definizioni che uso con i PIC16F627/628.
Le tengo in un mio file che includo nel sorgente, in questo file ci sono altre cose che qui non riporto.

Se trovate le lettere accentate incomprensibili Š perch‚ ho la pessima abitudine di scrivere i sorgenti con un'editor sotto DOS.
Scusatemi.

Codice:
;Ultima modifica il 20/02/04 per prove con F630.

;*************************************************************************

; Definizioni per il registro OPTION_REG che si trova nel banco 1 (0x81).
;  Di default Š 0xFF per cui vanno fatti gli and del voluto.
#define OPTION_DEF 0xFF	;Default di OPTION. Era valido per i 16C5x.
#define RBPU_DIS   0xFF ;Resistenze di pull-up del port B disabilitate.
#define RBPU_ENA   0x7F ;Resistenze di pull-up del port B attivate.
#define INTEDG_RIS 0xFF ;Interrupt Edge Select BIT: in salita su RA2/INT.
#define INTEDG_FAL 0xBF ;Interrupt Edge Select BIT: in discesa su RA2/INT.
#define T0CS_RA2   0xFF ;Sorgente del clock: transizione su RA2/T0CKI.
#define T0CS_CLK   0xDF ;Sorgente del clock: sul ciclo interno (CLKOUT).
#define T0SE_H_L   0xFF ;TMR0 si incrementa con transizione in discesa. T0CKI
#define T0SE_L_H   0xEF ;TMR0 si incrementa con transizione in salita. T0CKI
#define PSA_WDT    0xFF ;Prescaler assegnato a WDT. Da 1:1 a 1:128.
#define PSA_T0     0xF7 ;Prescaler al modulo del timer 0. Da 1:2 a 1:256.
	;Ricordati di aggiungere l'and col valore del prescaler.

; Definizioni per il registro T1CON che si trova nel banco 0 (0x10).
;  Di default Š 0x00 per cui vanno fatti gli or del voluto.
#define TMR1GE_DEF 0x00	;Il timer Š attivo o ignorato in funzione di TMR1ON.
#define TMR1GE_T1G 0x40	;Se TMR1ON=1 il timer lavora se il pin T1G Š basso.
#define T1CKP_1_8  0x30 ;Prescaler del timer 1 a 1:8.
#define T1CKP_1_4  0x20 ;Prescaler del timer 1 a 1:4.
#define T1CKP_1_2  0x10 ;Prescaler del timer 1 a 1:2.
#define T1CKP_1_1  0x00 ;Prescaler del timer 1 a 1:1.
#define T1LP_OFF   0x00 ;L'oscillatore LP Š spento o ignorato. F630/676
#define T1LP_ENA   0x08 ;L'oscillatore LP Š abilitato dal timer 1. F630/676
#define T1OSC_OFF  0x00 ;Oscillatore 1 shut off (vedi nota sul manuale).
#define T1OSC_ON   0x08 ;Oscillatore 1 abilitato.
#define T1SYNC_DEF 0x00	;Il timer usa il clock o Š ignorato in funzione di TMR1CS.
#define T1SYNC_NOT 0x04	;Se TMR1CS=1 non c'Š sincronizzazione, se 0 Š sincro con l'esterno.
#define TMR1CS_INT 0x00 ;Clock interno (Fosc/4).
#define TMR1CS_EXT 0x02 ;Clock esterno da T1OSO/T1CKI.
#define TMR1ON_STP 0x00 ;Timer 1 abilitato.
#define TMR1ON_ENA 0x01 ;Stop timer 1.

; Definizioni per il registro CMCON che si trova nel banco 0 (0x1F).
;  Per F630/676 Š compatibile ma si trova in 0x19 e non ha il comparatore 2.
;  Di default Š 0x00 per cui vanno fatti gli or del voluto.
#define C2OUT_L    0x00	;Comparazione di C2. E' funzione di C2INV (vedi manuale).
#define C2OUT_H    0x80	;Comparazione di C2. E' funzione di C2INV (vedi manuale).
#define C1OUT_L    0x00	;Comparazione di C1. E' funzione di C1INV (vedi manuale).
#define C1OUT_H    0x40	;Comparazione di C1. E' funzione di C1INV (vedi manuale).
#define C2INV_INV  0x00	;C2 ha l'uscita invertita.
#define C2INV_NINV 0x20	;C2 ha l'uscita non invertita.
#define C1INV_INV  0x00	;C1 ha l'uscita invertita.
#define C1INV_NINV 0x10	;C1 ha l'uscita non invertita.
#define CIS_RA0RA1 0x00	;In funzione di CMx connette RA0 o RA1 (vedi manuale).
#define CIS_RA3RA2 0x08	;In funzione di CMx connette RA2 o RA3 (vedi manuale).
	;Ricordati di aggiungere l'or per le operazioni di CM0, CM1 e CM2.
#define PORTA_DIG  0x07 ;Port A totalmente digitale.
Quello che segue Š un'esempio del loro uso in uno dei miei sorgenti.

Codice:
 LIST	P=16F628,N=0,C=132,F=INHX8M,R=DEC

 ERRORLEVEL 0, -302;, -224, -306, -202, -305

 INCLUDE "xxxxxxxx.INC"	; Contiene le definizioni sopra riportate.

 IFDEF __16F628
	INCLUDE "P16f628.INC"
	__CONFIG _CP_75&_WDT_ON&_BODEN_ON&_PWRTE_ON&_XT_OSC&_LVP_OFF&_MCLRE_OFF
 ENDIF


omissis

;---------------------------------------------------------------------------
Main:
	;sistema le porte e i registri

	clrf	Port_A
	clrf	Port_B

	RAM_0_1
		;settaggio porte:
	movlw	TRISDyW
	movwf	TRISB
	movlw	TRIS_PA
	movwf	TRISA
		;settaggio registro OPTION.
	movlw	RBPU_DIS&INTEDG_FAL&T0CS_CLK&T0SE_L_H&PSA_T0&0xF8 ;prescaler /2
	movwf	OPTION_REG		;set del timer
	RAM_1_0

		;Timer 1: clock interno, prescaler /2.
	;movlw	T1CKP_1_2 | T1SYNC_NOT | TMR1CS_INT | TMR1ON_ENA
	;movwf	T1CON

	movlw	PORTA_DIG ;Port A totalmente digitale.
	movwf	CMCON

	;Mette a 0 tutto il banco 0 della RAM.

omissis
__________________
Camillo
Il VeroProgrammatore può contare fino a 1024 con le dita delle mani. Grazie a .mau.
Le donne e i gatti fanno quello che vogliono, gli uomini e i cani dovrebbero rilassarsi e abituarsi all'idea. R.A.Heinlein

Ultima Modifica di Camillo : 19-03-2006 11.25.34.
Camillo Non in Linea   Rispondi Citando
Vecchio 10-04-2006, 22.48.28   #5
Credendo Vites
 
L'avatar di  SoldatoSemplice
 

Iscritto da: 17-11-2005
Locazione: Roma
Messaggi: 537
Feedback: (0)
Scusate il ritardo nel rispondere, ma qualcuno (magari quell'anima pia di Camillo) non è che già che ci sta potrebbe uppare anche il file processor.inc?

Sbav Sbav.... Ciao e grazie
SoldatoSemplice Non in Linea   Rispondi Citando
Vecchio 12-04-2006, 23.01.08   #6
Registered User
 
L'avatar di  Camillo
 

Iscritto da: 31-01-2006
Locazione: Genova
Messaggi: 967
Feedback: (0)
Quote:
Originariamente inviato da SoldatoSemplice
Scusate il ritardo nel rispondere, ma qualcuno (magari quell'anima pia di Camillo) non è che già che ci sta potrebbe uppare anche il file processor.inc?
A quest'ora penso che tu abbia risolto comunque ti rispondo ugualmente.
Penso che processor.inc sia un nome di comodo, ufficialmente Microchip non lo usa. Sarà da sostituire con il nome del PIC utilizzato. Cosa che ti ha già passato Fluid e che tu già utilizzi.
A proposito io non sono per niente pio e non posseggo nessuna anima.
__________________
Camillo
Il VeroProgrammatore può contare fino a 1024 con le dita delle mani. Grazie a .mau.
Le donne e i gatti fanno quello che vogliono, gli uomini e i cani dovrebbero rilassarsi e abituarsi all'idea. R.A.Heinlein
Camillo Non in Linea   Rispondi Citando
Vecchio 18-06-2006, 19.40.14   #7
Registered User
 

Iscritto da: 18-06-2006
Messaggi: 2
Feedback: (0)
Ma è possibile riprogrammare i fusibili? Anche quello del code protect?
TexZK Non in Linea   Rispondi Citando
Vecchio 28-08-2006, 20.39.06   #8
Registered User
 

Iscritto da: 09-07-2006
Messaggi: 37
Feedback: (0)
Ciao a tutti, ho apprezzato non poco questo thread che mi ha fatto risparmiare molte domande inutili. Adesso però che ho bisogno di creare una applicazione piuttosto complessa mi servirebbe anche una descrizione completa di ogni opzione della config word. Qualcuno sa dove posso trovarne una? Grazie!
Ziko Non in Linea   Rispondi Citando
Vecchio 28-08-2006, 21.22.11   #9
Super Moderator
 
L'avatar di  FluidGuitar
 

Iscritto da: 04-01-2001
Locazione: Torino
Messaggi: 4,023
Feedback: (0)
Quote:
Originariamente inviato da Ziko
Ciao a tutti, ho apprezzato non poco questo thread che mi ha fatto risparmiare molte domande inutili. Adesso però che ho bisogno di creare una applicazione piuttosto complessa mi servirebbe anche una descrizione completa di ogni opzione della config word. Qualcuno sa dove posso trovarne una? Grazie!
Nel datasheet di ogni PIC c'è una sezione dedicata alla config word e al significato di ogni bit che la compongono.

Che pic stai usando?
__________________

Tu non sai niente, Jon Snow!
FluidGuitar Non in Linea   Rispondi Citando
Vecchio 29-08-2006, 19.42.17   #10
Registered User
 

Iscritto da: 09-07-2006
Messaggi: 37
Feedback: (0)
sto usando un pic18f4550
Ziko Non in Linea   Rispondi Citando
Vecchio 30-08-2006, 08.01.15   #11
Super Moderator
 
L'avatar di  FluidGuitar
 

Iscritto da: 04-01-2001
Locazione: Torino
Messaggi: 4,023
Feedback: (0)
Quote:
Originariamente inviato da Ziko
sto usando un pic18f4550
I PIC della famiglia 18F hanno ben 7 registri da 2 byte ciascuno per gestire le varie opzioni di configurazione.
Ti allego la tabella riassuntiva; la spiegazione di ciascun parametro puoi trovarla di seguito nel datasheet del componente.

A livello di codice nel P18F4550.INC trovi tutte le definizioni e in questo documento hai un riepilogo per tutta la famiglia 18F:

http://ww1.microchip.com/downloads/e...ngs_51537f.pdf
Immagini Allegate
Tipo di File: gif tab.GIF‎ (63.4 KB, 491 visite)
__________________

Tu non sai niente, Jon Snow!
FluidGuitar Non in Linea   Rispondi Citando
Vecchio 11-01-2007, 11.19.58   #12
Registered User
 

Iscritto da: 11-01-2007
Messaggi: 2
Feedback: (0)
salve a tutti, so che magari arrivo tardi, ma vorrei chiedervi una cosa... sono riuscito a settare i config con il C18, ma per settare il deviceID come si fa?????? e poi nel post del 12-03 hai inseritodel codice... il C18 dove lo trova quel codice, lo devo fare io o c'è gia salvato, in teoria c'è gia dato che sono riuscito ad impostare i config, giusto? scusate le mille domande... grazie
warcomeb Non in Linea   Rispondi Citando
Vecchio 11-01-2007, 11.21.07   #13
Registered User
 

Iscritto da: 11-01-2007
Messaggi: 2
Feedback: (0)
ps. utilizzo un 18F4580!!!!
warcomeb Non in Linea   Rispondi Citando
Vecchio 11-01-2007, 15.36.10   #14
Registered User
 

Iscritto da: 29-10-2006
Messaggi: 1,355
Feedback: (0)
Quote:
Originariamente inviato da warcomeb
salve a tutti, so che magari arrivo tardi, ma vorrei chiedervi una cosa... sono riuscito a settare i config con il C18, ma per settare il deviceID come si fa?????? e poi nel post del 12-03 hai inseritodel codice... il C18 dove lo trova quel codice, lo devo fare io o c'è gia salvato, in teoria c'è gia dato che sono riuscito ad impostare i config, giusto? scusate le mille domande... grazie
Il DeviceID non si può programmare, al massimo puoi modificare le ID locations, ma non ne vedo l'utilità...; per il C18 puoi usare un codice di questo tipo:
Codice:
#pragma config OSC = HSPLL
#pragma config FCMEN = OFF
#pragma config IESO = OFF
#pragma config PWRT = ON
lo metti nel tuo sorgente .c o .h
__________________
Paolo BB Conte - Utente PIC Dipendente
DEV - L'Elettronica Open Source
Le mie Foto

Ultima Modifica di BitBerzerkir : 11-01-2007 15.39.38.
BitBerzerkir Non in Linea   Rispondi Citando
Vecchio 12-01-2007, 09.26.22   #15
Registered User
 
L'avatar di  Camillo
 

Iscritto da: 31-01-2006
Locazione: Genova
Messaggi: 967
Feedback: (0)
Quote:
Originariamente inviato da warcomeb
salve a tutti, so che magari arrivo tardi, ma vorrei chiedervi una cosa... sono riuscito a settare i config con il C18, ma per settare il deviceID come si fa?????? e poi nel post del 12-03 hai inseritodel codice... il C18 dove lo trova quel codice, lo devo fare io o c'è gia salvato, in teoria c'è gia dato che sono riuscito ad impostare i config, giusto? scusate le mille domande... grazie
Si trova nel file delle inclusioni nel tuo caso p18f4680.inc fai una ricerca, se hai installato MPLAB lo trovi probabilmente in c:\programmi\microchip\MPASM Suite.
__________________
Camillo
Il VeroProgrammatore può contare fino a 1024 con le dita delle mani. Grazie a .mau.
Le donne e i gatti fanno quello che vogliono, gli uomini e i cani dovrebbero rilassarsi e abituarsi all'idea. R.A.Heinlein
Camillo Non in Linea   Rispondi Citando
Vecchio 15-06-2007, 17.25.52   #16
Registered User
 

Iscritto da: 15-06-2007
Messaggi: 2
Feedback: (0)
mplab e configuration bit

Colgo l'occasione per salutare e complimentarmi per il sito e naturalmente pongo una questione.
Sto cercando di imparare la programmazione dei PIC e per questo mi sono procurato da un'amico il picstart plus con il relativo software Mplab 7.5.
Ora prendendo in considerazione il pic 16f628 che sembra faccia al mio caso,non riesco a capire perchè devo usare la direttiva __CONFIG per settare le modalità di funzionamento,esempio quella dell'oscillatore.Dal manuale microchip mi pare di aver capito che basta seguire la seguente procedura:
configure-(setting)select device e poi configuration bit.Da qui posso settare la famosa parola a 14 bit,quindi scrivere del codice nel file asm e programmare il chip.Ma perchè anche nel file d'esempio f628tmpo.asm compare questa direttiva seguita da codice da righe di codice di esempio?
__CONFIG _CP_OFF & _WDT_ON & _BODEN_ON & _PWRTE_ON & _ER_OSC_CLKOUT & _MCLRE_ON & _LVP_ON

Inoltre se io la cancello e setto i bit come descritto sopra non è tutto piu semplice?
mantico Non in Linea   Rispondi Citando
Vecchio 15-06-2007, 19.41.16   #17
Super Moderator
 
L'avatar di  FluidGuitar
 

Iscritto da: 04-01-2001
Locazione: Torino
Messaggi: 4,023
Feedback: (0)
Ciao mantico, benvenuto su PcTuner

Un codice per pic è fatto per funzionare con una ben precisa config word.
Se cambi la config word, nella maggior parte dei casi ottieni un sistema non funzionante o, nel caso migliore, malfuzionante.

Quindi è concettualmente sbagliato tenere separate le due cose.

Inoltre se oggi scrivo un programma so perfettamente quale config devo metterci per farlo funzionare e posso impostarla in sede di programmazione come dici tu.
Ma se riprendo il codice fra sei mesi non posso sperare di ricordarmi quel particolare codice (magari ne scrivo 10 al giorno...) che config aveva nè posso permettermi di ristudiarmi di nuovo tutto il codice per capire quale sia la config giusta.

E' una questione di buon senso: la config è parte integrante del programma e bisogna renderla quanto più esplicita e comprensibile si può
__________________

Tu non sai niente, Jon Snow!
FluidGuitar Non in Linea   Rispondi Citando
Vecchio 15-06-2007, 20.59.04   #18
Registered User
 
L'avatar di  Camillo
 

Iscritto da: 31-01-2006
Locazione: Genova
Messaggi: 967
Feedback: (0)
Quote:
Originariamente inviato da mantico Visualizza Messaggio
__CONFIG _CP_OFF & _WDT_ON & _BODEN_ON & _PWRTE_ON & _ER_OSC_CLKOUT & _MCLRE_ON & _LVP_ON

Inoltre se io la cancello e setto i bit come descritto sopra non è tutto piu semplice?
Più semplice, forse, ma di cerco non più chiaro.

Se io prendo in mano un listato e trovo:
__CONFIG 11111111110111b
Mi potrebbe venire un'infarto mentre tento di decifrarlo.

Non che questo
__CONFIG _CP_OFF & _WDT_ON & _BODEN_ON & _PWRTE_ON & _ER_OSC_CLKOUT & _MCLRE_ON & _LVP_ON

sia molto più capibile però con un po' di pratica e frequentazione dell'ambiente anche senza prendere in mano il manuale e cercare la pagina opportuna si sa che:
la protezione del codice è inattiva
il watch dog timer è attivo
il brown-out reset è attivo
il timer all'accensione è attivo
l'oscillatore è di tipo esterno con l'oscillazione su un'uscita
che il piedino di reset fa la sua funzione e quindi va messo al positivo
che il piedino PGM serve per programmare a bassa tensione e non come I/O

Se desideriamo disattivare il WDT e sufficiente mettere due F al posto di una N ed il gioco è fatto e senza tanto scartabellare.

Hai dato un'occhiata alla CONFOG (sic) dei PIC18?
__________________
Camillo
Il VeroProgrammatore può contare fino a 1024 con le dita delle mani. Grazie a .mau.
Le donne e i gatti fanno quello che vogliono, gli uomini e i cani dovrebbero rilassarsi e abituarsi all'idea. R.A.Heinlein
Camillo Non in Linea   Rispondi Citando
Vecchio 16-06-2007, 10.38.44   #19
Registered User
 

Iscritto da: 15-06-2007
Messaggi: 2
Feedback: (0)
Se c'è una cosa nel net che distingue un sito da un'altro,sopratutto in argomenti
specifici è la chiarezza.La diffusione di informazioni approssimate e poco chiare è una merce abbondante in rete......ancora complimenti per la vostra professionalità!!!!!
mantico Non in Linea   Rispondi Citando
Vecchio 07-05-2008, 22.21.01   #20
Registered User
 

Iscritto da: 22-04-2006
Messaggi: 118
Feedback: (0)
3d eccellente! Nonostante sia "datato", direi sia da considerarsi un evergreen. Grazie a tutti per l'utilissimo aiuto che offrite continuamente. Avrei una piccola domanda e poi un giudizio da parte di chi di pic ne ha programmati a bizzeffe.
Intanto, vorrei sapere se le opzioni non abilitate, possono essere omesse (p.e.: __CONFIG _CP_OFF & _CCP1_RB2 & _DEBUG_OFF & ... = __CONFIG _CCP1_RB2 & ...).
e poi, cosa ne pensate delle forma:

Codice:
		RADIX DEC
		INCLUDE "P16F84.INC"
		ERRORLEVEL -302

		;Setup of PIC configuration flags
		;XT oscillator
		;Disable watch dog timer
		;Enable power up timer
		;Disable code protect

		__CONFIG 3FF1H
il commento è utile a "ricodare" cosa è stato fatto, ma la forma definitiva, è decisamente più breve...cosa ne dite?
daddy.lee Non in Linea   Rispondi Citando
Rispondi Per le vostre immagini su questo forum potete usare PcTunerUp!
Iscriviti gratuitamente alla nostra newsletter.


Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 visitatori)
 
Strumenti Discussione
Modalità Visualizzazione

Regole di scrittura
non Puoi inserire messaggi
non Puoi rispondere ai messaggi
non Puoi inviare allegati
non Puoi modificare i tuoi messaggi

codice vB è Attivo
Smilies è Attivo
[IMG] il codice è Attivo
Il codice HTML è Disattivato
Trackbacks are Disattivato
Pingbacks are Disattivato
Refbacks are Disattivato
Vai al Forum


Tutti gli Orari sono GMT +1. Attualmente sono le 09.26.42.