programma gsm (problema di compilazione)

buongiorno a tutti,
è da parecchio tempo che cerco una soluzione a questo mio problema, ma non ne vengo fuori…
Il problema sono quasi sicuro essere delle librerie che ho trovato online, metto in allegato la libreria e il programma (l’esempio fornito con le librerie) che mi danno problemi, non compila neanche le librerie in un programma “in bianco”.
Qui il link per scaricare l’intero pacchetto di librerie: “Loading...
l’errore che lamenta il compilatore è il seguente:
“C:\Users\Damiano\Documents\Arduino\libraries\GSMSHIELD\HWSerial.cpp: In member function ‘size_t HWSerial::print(const __FlashStringHelper*)’:
C:\Users\Damiano\Documents\Arduino\libraries\GSMSHIELD\HWSerial.cpp:55:9: error: ‘prog_char’ does not name a type
const prog_char *p = (const prog_char *)ifsh;
^
In file included from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:28:0,
from C:\Users\Damiano\Documents\Arduino\libraries\GSMSHIELD\HWSerial.h:6,
from C:\Users\Damiano\Documents\Arduino\libraries\GSMSHIELD\HWSerial.cpp:1:
C:\Users\Damiano\Documents\Arduino\libraries\GSMSHIELD\HWSerial.cpp:58:37: error: ‘p’ was not declared in this scope
unsigned char c = pgm_read_byte(p++);
^
Errore durante la compilazione”

Qualcuno è in grado di darmi una mano?
Se non sono stato abbastanza esaustivo nel spiegare il problema chiedete pure ulteriori informazioni
Grazie in anticipo a chi cercherà di aiutarmi

HWSerial.cpp (6.57 KB)

HWSerial.h (1.62 KB)

GSM_GPRSLibrary_Call.ino (1.57 KB)

Essendo il tuo primo post Ti invitiamo a presentarti QUI (dicci quali conoscenze hai di elettronica e di programmazione) e a leggere il regolamento QUI se non lo hai già fatto.

Comunque benvenuto sul forum.

Attilio

fatto ;)

Con le nuove versioni dell'IDE e della toolchain è cambiata la sintassi della PROGMEM e, dagli errori che vedo, credo che stai usando delle librerie vecchie e NON aggiornate per la nuova sintassi.

Prova a chiedere all'autore delle librerie se ne ha una versione più aggiornata oppure ... prova a scaricare una vecchia versione dell'IDE (es. la 1.0.6) e prova a compilare con quella.

Guglielmo

Ciao, scusate tantissimo se non ho risposto subito, ma ho avuto dei problemi e non sono riuscito a dedicare tempo al mio progetto...

Ho provato a compilare il programma-esempio con arduino 1.0.6 ma mi da comunque un errore:

C:\Users\ElNovo\Documents\Arduino\libraries\GSM_GPRS_GPS_Shield_GSMSHIELD\HWSerial.cpp: In constructor 'HWSerial::HWSerial()':
C:\Users\ElNovo\Documents\Arduino\libraries\GSM_GPRS_GPS_Shield_GSMSHIELD\HWSerial.cpp:5: error: 'Serial1' was not declared in this scope
C:\Users\ElNovo\Documents\Arduino\libraries\GSM_GPRS_GPS_Shield_GSMSHIELD\HWSerial.cpp: In member function 'void HWSerial::end()':
C:\Users\ElNovo\Documents\Arduino\libraries\GSM_GPRS_GPS_Shield_GSMSHIELD\HWSerial.cpp:15: error: 'Serial1' was not declared in this scope
C:\Users\ElNovo\Documents\Arduino\libraries\GSM_GPRS_GPS_Shield_GSMSHIELD\HWSerial.cpp: In member function 'virtual void HWSerial::begin(long int)':
C:\Users\ElNovo\Documents\Arduino\libraries\GSM_GPRS_GPS_Shield_GSMSHIELD\HWSerial.cpp:28: error: 'Serial1' was not declared in this scope
C:\Users\ElNovo\Documents\Arduino\libraries\GSM_GPRS_GPS_Shield_GSMSHIELD\HWSerial.cpp: In member function 'int HWSerial::peek()':
C:\Users\ElNovo\Documents\Arduino\libraries\GSM_GPRS_GPS_Shield_GSMSHIELD\HWSerial.cpp:33: error: 'Serial1' was not declared in this scope
C:\Users\ElNovo\Documents\Arduino\libraries\GSM_GPRS_GPS_Shield_GSMSHIELD\HWSerial.cpp: In member function 'virtual size_t HWSerial::write(uint8_t)':
C:\Users\ElNovo\Documents\Arduino\libraries\GSM_GPRS_GPS_Shield_GSMSHIELD\HWSerial.cpp:38: error: 'Serial1' was not declared in this scope
C:\Users\ElNovo\Documents\Arduino\libraries\GSM_GPRS_GPS_Shield_GSMSHIELD\HWSerial.cpp: In member function 'virtual int HWSerial::read()':
C:\Users\ElNovo\Documents\Arduino\libraries\GSM_GPRS_GPS_Shield_GSMSHIELD\HWSerial.cpp:43: error: 'Serial1' was not declared in this scope
C:\Users\ElNovo\Documents\Arduino\libraries\GSM_GPRS_GPS_Shield_GSMSHIELD\HWSerial.cpp: In member function 'virtual int HWSerial::available()':
C:\Users\ElNovo\Documents\Arduino\libraries\GSM_GPRS_GPS_Shield_GSMSHIELD\HWSerial.cpp:48: error: 'Serial1' was not declared in this scope
C:\Users\ElNovo\Documents\Arduino\libraries\GSM_GPRS_GPS_Shield_GSMSHIELD\HWSerial.cpp: In member function 'virtual void HWSerial::flush()':
C:\Users\ElNovo\Documents\Arduino\libraries\GSM_GPRS_GPS_Shield_GSMSHIELD\HWSerial.cpp:53: error: 'Serial1' was not declared in this scope

Se no sapreste consigliarmi altre librerie che possano far funzionare una shield gsm? (se è importante la mia shield monta il sim900)

Grazie per l'aiuto in ogni caso

Scusa, quale è la libreria GSM che stai utilizzando (link) ?

Guglielmo

ecco il link: https://github.com/MarcoMartines/GSM-GPRS-GPS-Shield

ho provato a cercare ma non ho trovato versioni più recenti di questa...

Ma … tu che Arduino hai ? ? ?

Guglielmo

uso arduino mega (basta togliere le due barre di commento davanti a "#define MEGA" in HWSerial.h e GSM.h e metterle su "#define UNO" in GSM.h)

Comunque ho appena provato a riscaricare l'ultima versione del software di arduino e me lo compila senza problemi... MAGIA. Adesso sembra funzionare come dovrebbe, grazie di tutto. Se ho ancora problemi vi faccio sapere.

ciao Damiano.