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

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • 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.