- Messaggi: 34
- Ringraziamenti ricevuti 0
istruzioni
4 Anni 7 Mesi fa #1
da raid
istruzioni è stato creato da raid
Grazie per avermi aiutato a risolvere il problema di compilazione infatti, per la prima volta questa mattina la compilazione ha avuto SUCCESSO.
Grazie.
Qual'è la differenza fra le due istruzioni:
LCD_write_message ("Hello World 1"); e LCD_write_string (sentence); quest'ultima viene compilata se nell'argomento metto una stringa del tipo " hello" ma cos'i' com'è viene sottolineata in rosso, non capisco...
Naturalmente con la nuova libreria , come diceva Marcello, molte delle istruzioni dei vari moduli del PIC degli esempi del testo dovranno essere rettificati studiando i sorgenti della nuova libreria e gli esempi allegati.
L' unico modo per ringraziarvi concretamente è attraverso il sostentamento del sito.
Ancora mille grazie,
Raimondo
Grazie.
Qual'è la differenza fra le due istruzioni:
LCD_write_message ("Hello World 1"); e LCD_write_string (sentence); quest'ultima viene compilata se nell'argomento metto una stringa del tipo " hello" ma cos'i' com'è viene sottolineata in rosso, non capisco...
Naturalmente con la nuova libreria , come diceva Marcello, molte delle istruzioni dei vari moduli del PIC degli esempi del testo dovranno essere rettificati studiando i sorgenti della nuova libreria e gli esempi allegati.
L' unico modo per ringraziarvi concretamente è attraverso il sostentamento del sito.
Ancora mille grazie,
Raimondo
Si prega Accedi o Crea un account a partecipare alla conversazione.
- raid
- Autore della discussione
- Junior Member
Riduci
Di più
4 Anni 7 Mesi fa #2
da Pinna
Chi vola vale, chi vale vola, chi non vola è un vile
Risposta da Pinna al topic istruzioni
Ciao Raimondo, la differenza tra le due istruzioni è che LCD_write_message(const char *buffer); è una stringa costante (non un'array) che viene scritta in rom mentre LCD_write_string(uint8_t *buffer); è un'array di caratteri che termina con /O. Guarda i remark del file LCD_44780.h
Per il fatto che lo sottolinei in rosso prova a chiudere e riaprire l'ide.... anche a me all'inizio sottolineava in rosso ma dopo avere eseguito questa procedura tutto è tornato a posto
Marcello
Per il fatto che lo sottolinei in rosso prova a chiudere e riaprire l'ide.... anche a me all'inizio sottolineava in rosso ma dopo avere eseguito questa procedura tutto è tornato a posto
Marcello
Chi vola vale, chi vale vola, chi non vola è un vile
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Pinna
- Moderator
Riduci
Di più
- Messaggi: 1010
- Ringraziamenti ricevuti 107
4 Anni 7 Mesi fa #3
da Mauro Laurenti
Risposta da Mauro Laurenti al topic istruzioni
Se la compilazione va a buon fine, devi considerare il fatto che una parola o funzione sia sottolineata in rosso, come un errore di parsing. Purtroppo è un errore che da anni ha MPLAB X e non viene risolto.
Il cambio dei nomi in LTlib 5 è stato realmente un male necessario che rende ora la libreria più coerente.
In C++, usando l'overloading delle funzioni, ovvero funzioni con lo stesso nome ma parametri di ingresso diversi, si sarebbe potuto definire "una sola" funzione come interfaccia (per esempio LCD_write_message ).
Poi il compilatore, avrebbe usato una o l'altra funzione in base al valore passato alla funzione.
In C l'overloading non è possibile, per cui bisogna usare necessariamente due nomi di funzioni diversi oltre che parametri diversi.
L'overloading in C++ è possibile perché una funzione (metodo) in C++ non è solo identificata dal suo nome ma anche dai suoi parametri. Per cui due funzioni con nomi uguali possono coesistere fino a quando hanno parametri diversi.
Saluti,
Mauro
Il cambio dei nomi in LTlib 5 è stato realmente un male necessario che rende ora la libreria più coerente.
In C++, usando l'overloading delle funzioni, ovvero funzioni con lo stesso nome ma parametri di ingresso diversi, si sarebbe potuto definire "una sola" funzione come interfaccia (per esempio LCD_write_message ).
Poi il compilatore, avrebbe usato una o l'altra funzione in base al valore passato alla funzione.
In C l'overloading non è possibile, per cui bisogna usare necessariamente due nomi di funzioni diversi oltre che parametri diversi.
L'overloading in C++ è possibile perché una funzione (metodo) in C++ non è solo identificata dal suo nome ma anche dai suoi parametri. Per cui due funzioni con nomi uguali possono coesistere fino a quando hanno parametri diversi.
Saluti,
Mauro
Si prega Accedi o Crea un account a partecipare alla conversazione.
Moderatori: Mauro Laurenti, Pinna, StefA, Matteo Garia
Registrati al sito
Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.