Pages: 1 [2]   Go Down
Author Topic: Stringa sull'EEPROM  (Read 1230 times)
0 Members and 1 Guest are viewing this topic.
Tortona
Offline Offline
God Member
*****
Karma: 2
Posts: 590
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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ì...
Logged

Se gommo tiene,io vince gara! Se gommo non tiene,io come bomba dentro montagna

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 313
Posts: 21624
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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);
Logged


Milazzo (ME)
Offline Offline
Sr. Member
****
Karma: 0
Posts: 395
Chi cerca trova. .
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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:
int l = 0;
while(Serial.available() > 0){
EEPROM.write(l, testo.charAt(l));
l++;
}
Logged

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

Milazzo (ME)
Offline Offline
Sr. Member
****
Karma: 0
Posts: 395
Chi cerca trova. .
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

UP!

Nessun aiuto su come ricevere da seriale un valore int?
Logged

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

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 313
Posts: 21624
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged


Milazzo (ME)
Offline Offline
Sr. Member
****
Karma: 0
Posts: 395
Chi cerca trova. .
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Non riesco a capire. Potresti farmi un esempio?
Logged

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

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 313
Posts: 21624
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged


Pages: 1 [2]   Go Up
Jump to: