Come srivere e leggrere una stringa dalla Eeprom di Arduino

7 Anni 8 Mesi fa #6 da Claudio_F
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
Ringraziano per il messaggio: Guido

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Claudio_F
  • Premium Member
  • Premium Member
Di più
7 Anni 8 Mesi fa #7 da Guido

Rendering Error in layout Message/Item: array_keys(): Argument #1 ($array) must be of type array, null given. Please enable debug mode for more information.

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Guido
  • Platinum Member
  • Platinum Member
Di più
7 Anni 8 Mesi fa #8 da Claudio_F
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.

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Claudio_F
  • Premium Member
  • Premium Member
Di più
7 Anni 8 Mesi fa #9 da Claudio_F
#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);
}
Ringraziano per il messaggio: Guido

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Claudio_F
  • Premium Member
  • Premium Member
Di più
Moderatori: Mauro Laurenti

Registrati al sito

Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.

Registrati al sito LaurTec.

Login