Go Down

Topic: Problema PROGMEM e Array di array (Read 1 time) previous topic - next topic

dasty

ho in parte capito il problema e risolto in modo spartano

analizziamo il primo array:
PROGMEM prog_char h0[]={4,14,31,0,31,31,31,0};

quando questo array veniva letto e arrivva alla posizione 3 che corrisponde allo 0, per lui l'array era finito quindi dal valore successivo in poi iniziava a dare valori sbagliati, per adesso ho solo levato questo zero e tutto funziona, ma se mi capitase di dover metere per forza uno zero, come potrei risolvere?


leo72

Ma hai la necessità di salvare dei byte oppure salvi gli ASCII di una stringa? Perché in questo caso allora ti converrebbe forse salvare direttamente la stringa e far fare lo sporco lavoro a PROGMEM.

tuxduino

Quote
ma se mi capitase di dover metere per forza uno zero, come potrei risolvere?


Le funzioni str* lavorano sull'assunto che il byte zero indica la fine della stringa. Se non rispetti questa convenzione, allora devi evitare l'uso di quelle funzioni, e fare il lavoro di copia "a mano".

dasty

in questi array salvo dei numeri che successivamente vengono passati alla funzione creaCustomChar per creare dei caratteri non presenti nel mio LCD

tuxduino

Se devi copiare dei byte null non puoi usare strcpy_P. Cerca tra le funzioni _P una funzione di copia che non inizi con "str". Mi viene in mente memcpy(), ad esempio (è solo un suggerimento di ricerca...)

In alternativa hai considerato l'uso della EEPROM ?

Go Up