Aktywne Wpisy
robertx +506
GdzieJestBanan +50
Pytanie głównie do #rozowepaski, bo opinia niebieskich będzie pewnie jednoznaczna.
Czemu dziewczyny robią sobie taką krzywdę?
Ja rozumiem, że ktoś ma małe, wąskie, krzywe, czy cholera wie jakie usta i chce je poprawić - medycyna daje wam takie możliwości, tak samo jak facetom przeszczep włosów na zakola. Nie ma w tym nic złego. Ale dlaczego iść ze skrajności w skrajność? Bo to już nie jest kwestia gustu, że mi się nie
Czemu dziewczyny robią sobie taką krzywdę?
Ja rozumiem, że ktoś ma małe, wąskie, krzywe, czy cholera wie jakie usta i chce je poprawić - medycyna daje wam takie możliwości, tak samo jak facetom przeszczep włosów na zakola. Nie ma w tym nic złego. Ale dlaczego iść ze skrajności w skrajność? Bo to już nie jest kwestia gustu, że mi się nie
Zaczynam swoją przygodę ze środowiskiem ArduinoIDE (programowanie ESP32), mam już trochę linijek kodu i chcę się dopytać o kilka rzeczy ( ͡º ͜ʖ͡º)
Robię sobie taką (na razie prymitywną) stację pogodową. Zakodowałem kilka "ekranów" czyli data czas (bazująca na domyślnym kodzie ze środowiska Arduino IDE), wilgotność, temperatura. Każdy wyświetla się po 5 sekund (funkcją delay).
Denerwuje mnie jednak, że wartość np. czasu zostaje pobierana raz przy wyświetleniu i sekundnik wtedy nie działa (oczywiście pewnie przez delay, bo pobiera jednorazowo tą wartość). Nie chciałbym tego rozpisywać jak żółtodziub czyli printLocalTime, delay 1000, printLocalTime, etc.
Da się to jakoś ładniej zrobić? xD
I jeszcze jedna kwestia. Funkcja pobierania czasu z NTP podaje dzień tygodnia w języku angielskim. Zrobiłem sobie customowe znaczki (polskie) i praktycznie w każdym innym miejscu wypisuję sobie to w naszym ojczystym języku, oprócz zegara. Chciałbym zrobić, hm.. "tabelę" z której podmieniałoby np. "Thu" na "Czw" etc. Jak się za to zabrać? ( ͡º ͜ʖ͡º)
#arduino #arduinoide #esp32 #programowanie #c
@Zjem_Ci_nos: zrobić mapowanie z wersji EN na PL. np na std::map<const char*, const char*>.
https://techtutorialsx.com/2021/11/02/esp32-the-cpp-map-container/
ESP32 ma dwa rdzenie i dwa "loopy" działające niezależnie, jeden rdzeń zatrudnij do sprawdzania czasu a drugi do wyświetlania, albo użyj przerywań/timera lub jak to ise tam nazywa
static uint32t var1 = 0;
static uint32t var2 = 0;
static uint32_t var3 = 1000;
void setup1(){ //should run only once
//code for this setup1() function on core 1
var1 = 1000000;
}
void setup2(){ //should also run only once on
@Zjem_Ci_nos: hmm, a może tak zanim się weźmiesz za programowanie to naucz się podstaw języka w którym chcesz pisać?
https://randomnerdtutorials.com/esp32-dual-core-arduino-ide/
Tutaj info i dokumentacja FreeRTOSa oraz jak używać delayuntil:
https://www.freertos.org/vtaskdelayuntil.html
Najlepiej w moim przypadku jest uczyć się na żywym organiźmie, czyli wpaść w coś i się tego uczyć, postawić jakieś założenia i podnosić z dnia na dzień stopień trudności.
Wpierw założenia, potem dokumentacja, sprawdzenie czy to jest możliwe i realizacja celu. Z 220 linijek (zrobionych w 2 godziny) mało która jest gotowcem, większość
@biauekWladcaJajek:
Rozpoznanie bojem!
Robiłem podobne rzeczy, ale nie napiszę jak bo pewnie jest to totalnie niezgodne ze sztuką i wykopki by mnie zaraz zjechały. Napisz do mnie to podumamy
nie wiedziałem, że tak można, to rzuca inne światło na moje projekty.
@maniok: nie, to zła porada nie słuchaj kolegi @Zjem_Ci_nos - znaczy słuchaj, bo to dobra porada ale w BARE METAL programowaniu. Delay() jak masz RTOSa wewnętrznie wzywa vTaskDelay() i to pozwala na przełączanie threadów dzięki czemu wykonują się inne operacje na innych wątkach.
@wiecejszatana Generalnie polecam sobie każdy osobny task w aplikacji pisać na osobnych wątkach, używasz delay() albo vTaskDelayUntil() by ustawić sobie timing
Ogólnie przeskocz sobie na
Dlatego lubię takie wpisy. Niby nie ja go zacząłem a i tak się czegoś nowego dowiedziałem. Nie wiedziałem że esp32 może mieć dwie pętle. Dzięki za dzielenie się wiedzą z innymi
@maniok: może mieć nawet 16!
Ogólnie Twoje podejście jest w 100% poprawne w normalnym systemie, jednak RTOS to specyficzna bestia, ale nawet tutaj ja używam tego by robić timing na niektórych rzeczzach gdy mam je w jednym wątku.
I to też nie jest tak, że one się wykonują na raz - nie - po prostu gdy w jednym jest delay drugi przełącza się i wykonuje swoje instrukcje do czasu jak nie dojdzie do delay (albo task z wyższym priority zażąda przełączenia).
Polecam wyjaśnienie Pana z szwajcarskim akcentem (