Skocz do zawartości

ESP8266 zapisa do eepromu


_LM_

Pomocna odpowiedź

Cześć. Mam strukturę która będzie zapisywana do pamięci "eeprom*"

#define eStartAdress 0


typedef struct {
char nTel[13];
int param; // parametry dodatkowe (ewentualne opcje)
}mem_t;

typedef struct{
char test[3]; // test czy w eeprom cos juz jest ("OK")
char nazwa[30];
int8_t saved;
mem_t numery[10];
}emem_t;

extern emem_t daneEeprom;

void eepromTest();

oraz wstępna funkcja sprawdzająca czy już coś było zapisane.

void eepromTest(void){
    if(0 != strcmp("OK",daneEeprom.test)){ // jesli pamiec czysta
strcpy(daneEeprom.test,"OK");
strcpy(daneEeprom.nazwa,"Nazwa nieprzypisana");
daneEeprom.saved = -1; // brak zapisanych nr
EEPROM.put(eStartAdress,daneEeprom);
while(! EEPROM.commit());
EEPROM.end();
ESP.restart();
}
}

No i moje pytanie jak to jest z tymi funkcjami commit() oraz end(), bo o ile dobrze zrozumiałem dokumentację to np: po odczycie pamięci należy zwolnić bufor poleceniem EEPROM.end(). Ok ale czy jeśli w późniejszym czasie znów będę chciał coś zapisać to muszę wykonać funkcję EEPROM.begin()?

Tak bym widział funkcję zapisującą, proszę o komentarz

void eSave(){
    EEPROM.begin(1024);
    EEPROM.put(eStartAdress,daneEeprom);
    while(! EEPROM.commit());
    EEPROM.end();
}

*tak wiem że to symulacja eeprom w pamięci fasch

Edytowano przez _LM_
funkcja zapisująca
Link do komentarza
Share on other sites

Nie musisz nic zwalniać, wystarczy że dasz commit. No, chyba że brakuje pamięci, wtedy dajesz end (no i wtedy będziesz musiał dać begin przy następnym dostępie).

Tak przy okazji - jak coś ma być częściej zapisywane to wolę  podłączyć mały kilobitowy eeprom, kosztuje złotówkę a śpię spokojnie.

  • Pomogłeś! 1
Link do komentarza
Share on other sites

Podziękował.

4 minuty temu, ethanak napisał:

Tak przy okazji - jak coś ma być częściej zapisywane to wolę  podłączyć mały kilobitowy eeprom, kosztuje złotówkę a śpię spokojnie.

W tym projekcie nie będzie z tym problemu, dane będą zapisywane tylko na etapie konfiguracji. Dzięki.

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.