Ora ottengo un errore di conversione da char** a char*.
In poche parole devo ripescare gli elementi dell'array depositato in memoria flash con progmem e riversarli nell'array swap[] . Come posso fare? Grazie
const char stringa1[30000] PROGMEM = "questa stringa si trova nella flash";
char stringa_tst[20];
/*
.
.
.
*/
// copia il contenuto di stringa1 per n caratteri in stringa_tst
memcpy_P (stringa_tst,&stringa1,10);
Giusto per completezza, non serve '*' quando dichiari un array, in C l'array è già un puntatore di suo.
Contiene esattamente l'indirizzo di memoria del primo valore in cui verrà salvato il dato.
const char stringa1[30000] PROGMEM = "questa stringa si trova nella flash";
Sì, dovrebbe essere così. Non serve mettere il simbolo di puntatore a char qui altrimenti poi quando più sotto converti esplicitamente il dato letto dalla Flash con (char*) effettui una doppia conversione.