Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Dichiarazione: const rom char*

Raccolta di codici sorgenti

Moderatore: Foto UtentePaolino

0
voti

[1] Dichiarazione: const rom char*

Messaggioda Foto Utentewizard » 12 ago 2013, 12:07

Salve :-)
Cosa vuol dire e quale funzione realizza la scritta "rom" che si trova in "const rom char *"?
Aggiungo che mi sono imbattuto in essa andando a realizzare una funzione di scrittura di una stringa di caratteri su un LCD
Se non metto "rom" mi dà il seguente errore: "Error [1109] type mismatch in redeclaration of 'scrivi_stringa'"...perché mi dà questo errore?
Avatar utente
Foto Utentewizard
25 1 5
Frequentatore
Frequentatore
 
Messaggi: 162
Iscritto il: 12 gen 2013, 17:48

2
voti

[2] Re: const rom char *

Messaggioda Foto UtenteTardoFreak » 12 ago 2013, 12:17

Immagino che tu ti riferisca al compilatore C18, vero?
Sempre specificare il compilatore di riferimento.
Comunque l' uso della parola chiave rom è uno dei pochissimi particolari non standard del C18. Se con i compilatori ANSI-C per microcontrollori è sufficiente specificare la classe di memorizzazione const per far si che il dato risieda in ROM con il C18 occorre specificarlo chiaramente.
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

0
voti

[3] Re: const rom char *

Messaggioda Foto Utentec1b8 » 12 ago 2013, 12:19

Sicuro che la stessa funzione non sia definita più volte in file .h o .c diversi?
Fabio
Avatar utente
Foto Utentec1b8
3.595 3 8 13
G.Master EY
G.Master EY
 
Messaggi: 1770
Iscritto il: 15 gen 2009, 15:23

0
voti

[4] Re: const rom char *

Messaggioda Foto Utentewizard » 12 ago 2013, 12:31

Grazie Foto UtenteTardoFreak :-)
Sì è un C18, chiedo scusa
Quindi se ho ben capito mi permette di memorizzare il dato nella ROM...e questo quale vantaggio mi porta? perché mi fa sparire quell'errore di type mismatch?

No Foto Utentec1b8, al 100% ;-)
Avatar utente
Foto Utentewizard
25 1 5
Frequentatore
Frequentatore
 
Messaggi: 162
Iscritto il: 12 gen 2013, 17:48

2
voti

[5] Re: const rom char *

Messaggioda Foto UtentePaolino » 13 ago 2013, 15:11

wizard ha scritto:Quindi se ho ben capito mi permette di memorizzare il dato nella ROM...e questo quale vantaggio mi porta?

Questa possibilità che ti si pone è utilissima per memorizzare tabelle, dati costanti, che devono essere letti "rapidamente".

Ciao.

Paolo.
"Houston, Tranquillity Base here. The Eagle has landed." - Neil A.Armstrong

-------------------------------------------------------------

PIC Experience - http://www.picexperience.it
Avatar utente
Foto UtentePaolino
32,6k 8 12 13
G.Master EY
G.Master EY
 
Messaggi: 4226
Iscritto il: 20 gen 2006, 11:42
Località: Vigevano (PV)

0
voti

[6] Re: Dichiarazione: const rom char*

Messaggioda Foto Utentewizard » 14 ago 2013, 17:47

Grazie Foto UtentePaolino :-)
Resta ancora oscuro il motivo per cui sparisce l'errore :roll:
Non è possibile che con quella istruzione il dato viene scritto su un numero di bit più grande?
Avatar utente
Foto Utentewizard
25 1 5
Frequentatore
Frequentatore
 
Messaggi: 162
Iscritto il: 12 gen 2013, 17:48

1
voti

[7] Re: Dichiarazione: const rom char*

Messaggioda Foto UtentePaolino » 15 ago 2013, 9:44

L'errore scompare perché così vuole la sintassi del compilatore.
Sul fatto che la memorizzazione avvenga su word a 14 bit, beh potrebbe anche essere ma dovrei dare una lettura all'help del C18.

Ciao.

Paolo.
"Houston, Tranquillity Base here. The Eagle has landed." - Neil A.Armstrong

-------------------------------------------------------------

PIC Experience - http://www.picexperience.it
Avatar utente
Foto UtentePaolino
32,6k 8 12 13
G.Master EY
G.Master EY
 
Messaggi: 4226
Iscritto il: 20 gen 2006, 11:42
Località: Vigevano (PV)

0
voti

[8] Re: Dichiarazione: const rom char*

Messaggioda Foto Utentewizard » 17 ago 2013, 14:29

Ti ringrazio Foto UtentePaolino :-)
Avatar utente
Foto Utentewizard
25 1 5
Frequentatore
Frequentatore
 
Messaggi: 162
Iscritto il: 12 gen 2013, 17:48

0
voti

[9] Re: Dichiarazione: const rom char*

Messaggioda Foto UtenteShockwaver » 19 ago 2013, 18:17

Il "type mismatch in redeclaration" in genere accade quando definisci il prototipo di una funzione in un modo (generalmente nel file .h o l'inizio del file .c) e poi l'intestazione della funzione vera e propria, dove scrivi il codice, la definisci con altri parametri. Probabilmente il prototipo di quella fuzione è definito con un parametro semplicemente const *char, non rom...

Mi fai un copia-incolla della riga con l'errore e mi dici il nome del file?
Anyone who has never made a mistake has never tried anything new
Two things are infinite: universe and human stupidity, and I'm not sure about the former
You did not really understand something unless you can explain it to your grandmother
A. Einstein
Avatar utente
Foto UtenteShockwaver
770 1 5 11
Expert
Expert
 
Messaggi: 859
Iscritto il: 3 mar 2010, 18:56

0
voti

[10] Re: Dichiarazione: const rom char*

Messaggioda Foto Utentewizard » 3 set 2013, 22:49

Chiedo scusa per il ritardo Foto UtenteShockwaver
Il problema da te esposto mi è noto ma ti assicuro che non è questo il caso, la scritta rom è presente sia nel .h che nel .c
Questo è il .c ----> void scrivi_stringa(const rom char *str)
Questo è il .h ----> void scrivi_stringa(const rom char *);
Avatar utente
Foto Utentewizard
25 1 5
Frequentatore
Frequentatore
 
Messaggi: 162
Iscritto il: 12 gen 2013, 17:48

Prossimo

Torna a Firmware e programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti