Go Down

Topic: Stringa sull'EEPROM (Read 2058 times) previous topic - next topic

cavde


Prendo il tuo esempio della scrittura...
Se la parola è sotto i 10 caratteri?!
Esempio prendiamo la parola "Ciao",
Indirizzo di memoria / Carattere
0 / C
1 / i
2 / a
3 / o

Lui continua a salvare fino all'indirizzo 10, ma cosa salva dall'indirizzo 4 in poi?


mi sembra che con un ciclo for continui a leggere finchè non trovi il carattere '\0' che indica la fine della stringa....quindi se scrivi 'ciao' in realtà stai scrivendo 'ciao\0' e occupi uno spazio char in più...
almeno mi sembra che sia così...
Se gommo tiene,io vince gara! Se gommo non tiene,io come bomba dentro montagna

leo72

Devi fare un ciclo do..while che legga finché ci sono byte sulla linea, salvare tutto in un char* e poi convertire.
do {
..
} while (Serial.available()>0);

Xfox


Devi fare un ciclo do..while che legga finché ci sono byte sulla linea, salvare tutto in un char* e poi convertire.
do {
..
} while (Serial.available()>0);



Caspita come ho fatto a non pensarci?!
Potrei fare un ciclo while del tipo:
Code: [Select]

int l = 0;
while(Serial.available() > 0){
EEPROM.write(l, testo.charAt(l));
l++;
}

Xfox's Blog, Elettronica, informatica e tant'altro: http://www.xfox.it

Xfox

UP!

Nessun aiuto su come ricevere da seriale un valore int?
Xfox's Blog, Elettronica, informatica e tant'altro: http://www.xfox.it

leo72

Un int è un numero a 2 byte. Mandalo scomposto nel byte-alto e byte-basso e poi ricomponi il numero usando magari le operazioni sui bit

Xfox

Non riesco a capire. Potresti farmi un esempio?
Xfox's Blog, Elettronica, informatica e tant'altro: http://www.xfox.it

leo72

Usa le funzioni seguenti per la trasmissione
http://arduino.cc/en/Reference/LowByte
http://arduino.cc/en/Reference/HighByte

Leggi poi i 2 byte e li ricombini insieme usando le operazioni sui bit:
int numero1, numero2;
numero1 = Serial.read();
numero2 = numero1 << 3;
numero1 = Serial.read();
numero2 |= numero1;

Prova così, dovrebbe andare.

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy