Skocz do zawartości

wykonanie funkcji podczas resetu WT32-ETH01


robo1973

Pomocna odpowiedź

Cześć !@!

Chwiałbym podczas naciśnięcia lub dłuższego przytrzymania przycisku (RESET) CLK EN  w WT 32 wykonać funkcje wpisującą ustawienia  początkowe

void ustawinia_poczatkowe(){
  conf.setValue("ssid","moja_siec");
  conf.setValue("myIP","192.168.178.200");
  conf.writeConfig();
}

  macie jakieś pomysły ?

Pozdrawiam !

Edytowano przez robo1973
Link do komentarza
Share on other sites

Przyciskiem en resetujesz system i chyba nic przed tym resetem nie zrobisz...a nie możesz dać zewnetrznego guzika? Po wciśnięciu guzika zapisujesz dane i robisz programowy reset w funkcji 

Link do komentarza
Share on other sites

Teoretycznie można...

Zapisywać na okrągło gdzieś w RTC RAM aktualny czas

Po restarcie sprawdzać przyczynę resetu

Potem łączyć się do jakiegoś serwera czasu i sprawdzać jaka jest różnica między aktualnym i zapisanym (uwzględniając niedeterministyczny czas odpowiedzi)

 

Dużo łatwiej użyć innego I/O. Dlaczego akurat reset? Na większości modułów masz jeszcze guzik boot, jak nie chcesz nic lutować.

Link do komentarza
Share on other sites

(edytowany)

Czyli każdy reset urządzenia ma wprowadzić ustawienia domyślne? Czy bierzemy pod uwagę że reset może zostać wywołany przez watchdog, lub układ BOD? 

Po prostu trzeba wiedzieć że przyczyn resetu mikrokontrolera od strony sprzętowej może być wiele, w większości przypadków są one dostępne w rejestrach. Układ równie dobrze może się zresetować w wyniku błędnego działania programu - próba odczytu, zapisu wartości pod nie zainicjowany wskaźnik, wycieki pamięci etc. 

Edytowano przez _LM_
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Ja to rozumiem jako coś co mam np. w routerze - "przytrzymaj reset przez 20 sekund aby przywrócić ustawienia fabryczne".

Link do komentarza
Share on other sites

Przed chwilą, ethanak napisał:

Ja to rozumiem jako coś co mam np. w routerze - "przytrzymaj reset przez 20 sekund aby przywrócić ustawienia fabryczne".

tak dokładnie Dodatkowy przycisk można dodać - najłatwiej Ale chciałbym resetem 

Link do komentarza
Share on other sites

Resetem się nie da - przy podaniu gnd na en wszystko stoi i nie ma jak zmierzyć czasu. Da się to zrobić, ale potrzebny dodatkowy pin. Coś w stylu:

Wciskam sobie przycisk. Układ RC podaje mi na chwilę gnd na en. Po chwili układ rusza, ale czeka na puszczenie przycisku (tu już działają funkcje pomiaru czasu). W zależności od czasu przytrzymania wykonuje (albo nie) przywrócenie wartości domyślnych.

Wada: trochę lutowania i dodatkowego barachła

Zaleta: reset zawsze zostanie wykonany nawet jeśli program nie czyta dodatkowego pinu, a programowy restart nie będzie na nic czekać (tak w skrócie).

Link do komentarza
Share on other sites

(edytowany)

A czy istnieje możliwość podłączenia dodatkowego układu? Bo wtedy istniałaby taka opcja, może trochę przekombinowana i również potrzeba dodatkowego gpio. Jednym przyciskiem dałoby się to zrobić, zależy jakie są priorytety

 

 

Edytowano przez _LM_
Link do komentarza
Share on other sites

dam sobie spokój Zrobię dodatkowym portem. Myślałem że bootloader można zmodyfikować Ale tu faktycznie chyba jest ostry reset

Pozdrawiam !!

Link do komentarza
Share on other sites

23 godziny temu, ethanak napisał:

Resetem się nie da - przy podaniu gnd na en wszystko stoi i nie ma jak zmierzyć czasu.

No pisałem że się da. Na około, ale się da.

Sztuką jest zmierzyć, jak długo się nie dało mierzyć czasu 🙂

 

Link do komentarza
Share on other sites

24 minuty temu, kostuch napisał:

internety piszą, że RTC_NOINIT_ATTR w deklaracji zmiennej załatwia kwestię przetrwania resetu.

Widocznie moje ESP32 nie czytują internetów - programowego restartu owszem, ale fizycznego wciśnięcia reset niestety nie (a szkoda).

 

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.