Progetti

   

Tutorial

   

Servizi

   

Sponsor  

   
Benvenuto, Ospite
Nome utente: Password: Ricordami
  • Pagina:
  • 1
  • 2

ARGOMENTO: Come srivere e leggrere una stringa dalla Eeprom di Arduino

Come srivere e leggrere una stringa dalla Eeprom di Arduino 4 Anni 6 Mesi fa #6

  • Claudio_F
  • Avatar di Claudio_F
  • Offline
  • Expert Boarder
  • Messaggi: 130
  • Ringraziamenti ricevuti 11
  • Karma: 0
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
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.
Ringraziano per il messaggio: Guido

Come srivere e leggrere una stringa dalla Eeprom di Arduino 4 Anni 6 Mesi fa #7

  • Guido
  • Avatar di Guido
  • Offline
  • Platinum Boarder
  • Messaggi: 583
  • Ringraziamenti ricevuti 1
  • Karma: 2
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?
#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.
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

Come srivere e leggrere una stringa dalla Eeprom di Arduino 4 Anni 6 Mesi fa #8

  • Claudio_F
  • Avatar di Claudio_F
  • Offline
  • Expert Boarder
  • Messaggi: 130
  • Ringraziamenti ricevuti 11
  • Karma: 0
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.
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

Come srivere e leggrere una stringa dalla Eeprom di Arduino 4 Anni 6 Mesi fa #9

  • Claudio_F
  • Avatar di Claudio_F
  • Offline
  • Expert Boarder
  • Messaggi: 130
  • Ringraziamenti ricevuti 11
  • Karma: 0
#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);
}
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.
Ringraziano per il messaggio: Guido
  • Pagina:
  • 1
  • 2
Moderatori: Mauro Laurenti
Powered by Forum Kunena
   
© LaurTec 2006-2015