- Messaggi: 130
- Ringraziamenti ricevuti 11
Come srivere e leggrere una stringa dalla Eeprom di Arduino
- Claudio_F
- Premium Utente
-
Less
Di più
8 Anni 1 Mese fa #6
da Claudio_F
Risposta da Claudio_F al topic Come srivere e leggrere una stringa dalla Eeprom di Arduino
Nelle istruzioni ready e write, il primo termine è l'indirizzo della eeprom, quindi se il ciclo for metti da 10 a 20, scrivi e leggi le locazioni da 10 a 20
I seguenti utenti hanno detto grazie : Guido
Si prega Accesso o Crea un account a partecipare alla conversazione.
- Guido
- Autore della discussione
- Platino Utente
-
Less
Di più
- Messaggi: 583
- Ringraziamenti ricevuti 1
8 Anni 1 Mese fa #7
da Guido
Risposta da Guido al topic Come srivere e leggrere una stringa dalla Eeprom di Arduino
Ciao sto cercando di scrivere e leggere nella cella 15 la parola Ciao e nella 17 Felino, solo che leggo sempre in sequenza: Ciao Felino, per cortesia dove sbaglio?
Mi interessa visualizzare a sinistra i numeri delle celle.
Code:
#include <EEPROM.h>
int a = 10; // Imposta due variabili a e value la prima utile come indice per scorrere le celle,
int value; // la seconda memorizzerà i valori letti dalla EEPROM
int b = 15; // Imposto indice celle per string
int c = 17; // Imposto indice celle per string
char string[] = "Ciao "; //Scrivo le parole da memorizzare
char cstring[] = "Felino "; //Scrivo le parole da memorizzare
void setup()
{
Serial.begin(9600);
EEPROM.write(10, 123); // Valore massimo impostabile 255. Scrivo dalla cella 10 il valore 123
EEPROM.write(b, string[12]);
EEPROM.write(c, cstring[7]);
}
void loop()
{
value = EEPROM.read(a); // Leggo il valore della cella passata come parametro alla funzione read,
// che hai definito e impostato in int a
string[12] = EEPROM.read(b); // Leggo il valore della cella passata come parametro alla funzione string
cstring[7] = EEPROM.read(c); // Leggo il valore della cella passata come parametro alla funzione string
/* Scrivo sul monitor seriale i valori letti, la colonna di sinistra mostra il valore dell’indice della cella,
la colonna di sinistra il valore letto
*/
Serial.print(a);
Serial.print("\t");
Serial.print(value);
Serial.print(string);
Serial.print(cstring);
Serial.println();
a = a + 1; // Incremento il valore di a di un punto, al prossimo ciclo loop()
if (a == 20) // Definisco un limite di cella, per evitare errori dello sketch cercando di leggere valori
a = 10; // di cella superiori a quelle disponibili
delay(500); // Definisco un tempo di attesa tra una lettura e la successiva.
}// loop
Mi interessa visualizzare a sinistra i numeri delle celle.
Si prega Accesso o Crea un account a partecipare alla conversazione.
- Claudio_F
- Premium Utente
-
Less
Di più
- Messaggi: 130
- Ringraziamenti ricevuti 11
8 Anni 1 Mese fa #8
da Claudio_F
Risposta da Claudio_F al topic Come srivere e leggrere una stringa dalla Eeprom di Arduino
Ciao, cerco di capire:
1) definisci string = "Ciao " e cstring = "Felino " come due array di tipo char.
2) scrivi 123 nella loc 10 della eeprom
2) nella loc 15 della eeprom scrivi il contenuto dell'array string[12], ma nella dichiarazione l'indice andava da 0 a 5 (Ciao \n)
3) nella loc 17 della eeprom il contenuto dell'array "cstring[7] che dovrebbe contenere '\n' (Felino \n)
4) carichi in value il contenuto della loc puntata da 'a'
5) ricarichi il contenuto della loc 15 della eeprom nell'array "string[12], oltre al limite che era 5 e risulta quindi ininfluente
6) ricarichi il contenuto della loc 17 della eeprom nell'array "cstring" con indice 7.
praticamente sia string che cstring mantengono il valore originale che ti viene stampato ad ogni ciclo del loop.
1) definisci string = "Ciao " e cstring = "Felino " come due array di tipo char.
2) scrivi 123 nella loc 10 della eeprom
2) nella loc 15 della eeprom scrivi il contenuto dell'array string[12], ma nella dichiarazione l'indice andava da 0 a 5 (Ciao \n)
3) nella loc 17 della eeprom il contenuto dell'array "cstring[7] che dovrebbe contenere '\n' (Felino \n)
4) carichi in value il contenuto della loc puntata da 'a'
5) ricarichi il contenuto della loc 15 della eeprom nell'array "string[12], oltre al limite che era 5 e risulta quindi ininfluente
6) ricarichi il contenuto della loc 17 della eeprom nell'array "cstring" con indice 7.
praticamente sia string che cstring mantengono il valore originale che ti viene stampato ad ogni ciclo del loop.
Si prega Accesso o Crea un account a partecipare alla conversazione.
- Claudio_F
- Premium Utente
-
Less
Di più
- Messaggi: 130
- Ringraziamenti ricevuti 11
8 Anni 1 Mese fa #9
da Claudio_F
Risposta da Claudio_F al topic Come srivere e leggrere una stringa dalla Eeprom di Arduino
#include <EEPROM.h>
int a = 0;
char value;
char string[] = "Ciao "; // 5 caratteri+carattere NULL�
char cstring[] = "Felino "; // 7 caratteri+carattere NULL�
void setup()
{
Serial.begin(9600);
for (a = 0 ; a<6 ; a++) // scrivi "Ciao \n" nella eeprom
{
EEPROM.write(a, string[a]);
}
for (a = 0 ; a<8 ; a++) // scrivi "Felino \n" nella eeprom
{
EEPROM.write(a+10, cstring[a]);
}
}
void loop()
{
for (a = 0 ; a<6 ; a++)
{
value = EEPROM.read(a);
Serial.print(a);
Serial.print("\t");
Serial.println(value);
}
for (a = 10 ; a<18 ; a++)
{
value = EEPROM.read(a);
Serial.print(a);
Serial.print("\t");
Serial.println(value);
}
delay(500);
}
int a = 0;
char value;
char string[] = "Ciao "; // 5 caratteri+carattere NULL�
char cstring[] = "Felino "; // 7 caratteri+carattere NULL�
void setup()
{
Serial.begin(9600);
for (a = 0 ; a<6 ; a++) // scrivi "Ciao \n" nella eeprom
{
EEPROM.write(a, string[a]);
}
for (a = 0 ; a<8 ; a++) // scrivi "Felino \n" nella eeprom
{
EEPROM.write(a+10, cstring[a]);
}
}
void loop()
{
for (a = 0 ; a<6 ; a++)
{
value = EEPROM.read(a);
Serial.print(a);
Serial.print("\t");
Serial.println(value);
}
for (a = 10 ; a<18 ; a++)
{
value = EEPROM.read(a);
Serial.print(a);
Serial.print("\t");
Serial.println(value);
}
delay(500);
}
I seguenti utenti hanno detto grazie : Guido
Si prega Accesso o Crea un account a partecipare alla conversazione.
Moderatori: Mauro Laurenti
Registrati al sito
Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.
Forum - Ultimi messaggi
-
- progetto can
- da marcelloraja
-
- MODULO GSM SIM900A
- da Mauro Laurenti
-
- Freedom III e compilazioni fallite
- da Mauro Laurenti
-
- Gestione degli errori su comunicazione seriale
- da Mauro Laurenti
-
- Timer0 e interrupt
- da Mauro Laurenti