ESP8266 EEPROM WRITE / READ PROBLEM


hi testing device eeprom library .

i trying save ssid string , read after reloading sketch.

step 1 : write , read in same sketch works ->

code: [select]

#define eprom_memory_size 512
int serveraccessssidaddressstart=1; int serveraccessssidaddressend=32;

void writestringeeprom(string s,int startadress,int endadress);
string readstringeeprom(int startadress,int endadress);

void setup() {
  serial.begin(115200);
  
  string server_router_ssid ="a111111111111111111111111111111a";

  serial.println("start write");
  eeprom.begin(eprom_memory_size);
  writestringeeprom(server_router_ssid,serveraccessssidaddressstart,serveraccessssidaddressend);
  eeprom.commit();
  serial.println("write done");
  
  serial.println("read");
  //eeprom.begin(eprom_memory_size);
  string res = readstringeeprom(serveraccessssidaddressstart,serveraccessssidaddressend);
  serial.println(res);
}


string readstringeeprom(int startadress,int endadress){
   string s;
   for(int i=startadress; i<=endadress; i++){
        char c = char(eeprom.read(i));
        s+=c;
    }
    return s;
}

void writestringeeprom(string s,int startadress,int endadress)
{
    int stringlength=s.length();
    
    for(int i=startadress; i<=endadress; i++){
        int indexstring=i-startadress;
        if(indexstring<stringlength){
          eeprom.write(i,s[indexstring]);
        }else{
          eeprom.write(i,' ');
        }
    }
}

loop(){}





output :
code: [select]

start write
write done
read
a111111111111111111111111111111a




but when upload sketch :

code: [select]

#define eprom_memory_size 512
int serveraccessssidaddressstart=1; int serveraccessssidaddressend=32;

void writestringeeprom(string s,int startadress,int endadress);
string readstringeeprom(int startadress,int endadress);

void setup() {
  serial.begin(115200);
  
  //string server_router_ssid ="a111111111111111111111111111111a";

  //serial.println("start write");
  //eeprom.begin(eprom_memory_size);
  //writestringeeprom(server_router_ssid,serveraccessssidaddressstart,serveraccessssidaddressend);
  //eeprom.commit();
  //serial.println("write done");
  
  serial.println("read");
  eeprom.begin(eprom_memory_size);
  string res = readstringeeprom(serveraccessssidaddressstart,serveraccessssidaddressend);
  serial.println(res);
}

string readstringeeprom(int startadress,int endadress){
   string s;
   for(int i=startadress; i<=endadress; i++){
        char c = char(eeprom.read(i));
        s+=c;
    }
    return s;
}

void writestringeeprom(string s,int startadress,int endadress)
{
    int stringlength=s.length();
    
    for(int i=startadress; i<=endadress; i++){
        int indexstring=i-startadress;
        if(indexstring<stringlength){
          eeprom.write(i,s[indexstring]);
        }else{
          eeprom.write(i,' ');
        }
    }
}

loop(){}




i empty output ):

code: [select]

read



any problem in code please ?

should use eeprom.begin when writing ?

when should use  eeprom.end , when should use  eeprom.commit (i know end includes commit ) ?

quote
any problem in code please ?
one major problem getting here have not posted code.


Arduino Forum > Using Arduino > Programming Questions > ESP8266 EEPROM WRITE / READ PROBLEM


arduino

Comments

Popular posts from this blog

DHT11 Time out error using v0.4.1library

Sketch upload fails with Java error (___REMOVE___/bin/avrdude)!

Arduino Uno + KTY81/210 temperature sensor