Newsgroup: it.hobby.elettronica.digitale
Titolo: paginazione pic 16F

Salve!
Credevo a torto evidentemente, che usando un compilatore C questo potesse 
scavalcare il problema della paginazione dei PIC della serie 16F ed invece 
no.
Un vettore ad esempio non puo' contenere piu' di 96 elementi cioe' pari ad 
una pagina 

"diego" <ha scritto nel messaggio:

Staiusando il compilatore ccs? prova ad usare subito dopo la specifica del 
processore questa: #device *=16 

 una pagina
ma un vettore di che?
allocato dove?
-ice- 


Scusami intendevo una stringa cioe' una char[96] allocato in ram cioe' creo 
una "char stringa_temporanea[96]" quindi credo vengano allocate nella ram 
del microcontrollore, pero' mi sorge un dubbio se dichiaro una stringa del 
tipo"char nome[] {'d','i','e','g','o','\0'};" cioe' la creo e la inizializzo 
verra' caricata sempre nella ram? oppure si usera' la rom? 

 processore questa: #device *=16
Ho controllato sul manuale della CCS quello che hai scritto leggo: *=16 Use 
16 bit pointer (for 14 bit parts) non so se usando questo accorgiemnto 
crerei qualche altro problema di difficile risoluzione.


dipende dal compilatore.
Se vuoi essere sicuro che venga allocata in rom devi definirla, anche per 
correttezza:
const char nome[] = {'d','i','e','g','o','\0'};
oppure al CCS va anche bene (ma č un motivo perchč il CCS č secondo me 
l'internet explorer di turno dei compilatori C per PIC):
#define nome[]      "diego"
cioč che "mangiano" tutto, staccandosi dall'ANSI C cosě come l' IE si stacca 
dall'html
Ciao
CG 

 l'internet explorer di turno dei compilatori C per PIC):
non ricordo di preciso ma mi pare vi sia una direttiva per la compatibilità 
e/o l'utilizzo dell'overloading;
cmq il compilatore ti mette a disposizione una sintassi estesa, se vuoi puoi 
non avvalertene e rimanere 100% ansi-C
infine: non credo che un listato ansi-C passato da un compilatore ad un 
altro riesca ad essere compilato senza qualche aggiustamento
ciao!
-ice- 


Consiglieresti altri compilatori per PIC 16F? da i PIC 18F in poi conviene 
il compilatore Microchip? ho scaricato anche Mikro C ma non mi sembra all' 
altezza del CCS ad incominciare dalle librerie che non sono editabili.. 

 altezza del CCS ad incominciare dalle librerie che non sono editabili..
I compilatori più conosciuti sono questi tre infatti: C18, PICC (PCWH) e 
MikroC (da poco uscito il MikroC PRO che è molto interessante... lo sto 
testando).
Quello che genera il codice più compatto è il CCS, ma direi che non è il più 
adatto per imparare, perchè ti mette a disposizione degli strumenti non 
ansi-c, il che è male per la portabilità del codice.
Il C18 è quello ufficiale microchip, e ti permette di sfruttare le molte 
librerie già scritte che trovi sul loro sito (per esempio la libreria 
ethernet completa), ma non lo conosco moltissimo.
Il MikroC è probabilmente il meno ottimizzato ma il più ricco di librerie 
che funzionano per davvero e rigorosamente ansi-c. Diciamo che è il più 
veloce per iniziare, anche per i loro mille strumenti di sviluppo ma 
probabilmente il meno adatto a un professionista: tutto sta in cosa devi 
fare. Il fatto di non poter editare le librerie da un lato è male (purtroppo 
qualche baco in giro c'è) ma da un lato è bene, perchè specie per un 
principiante a mio parere è importante capire cosa sono e come sfruttare il 
linking, evitare l'uso di variabili globali e dividere in codice e header i 
propri programmi/librerie.
Per quello che mi riguarda io utilizzo o il CCS o il MikroC. Se devo fare 
cose più complicate non cerco compilatori chissà come raffinati ma cambio 
architettura e vado su ARM, dove utilizzo (raramente a dir la verità) il 
Keil.
Ciao
CG