_LM_ Napisano Czerwiec 22, 2021 Udostępnij Napisano Czerwiec 22, 2021 (edytowany) 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 Czerwiec 22, 2021 przez _LM_ funkcja zapisująca Cytuj Link do komentarza Share on other sites More sharing options...
ethanak Czerwiec 22, 2021 Udostępnij Czerwiec 22, 2021 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. 1 Cytuj Link do komentarza Share on other sites More sharing options...
_LM_ Czerwiec 22, 2021 Autor tematu Udostępnij Czerwiec 22, 2021 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. Cytuj Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
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!