es gibt hier noch einen Bug oder Issue, wie man thread prios richtig setzt - bisher brachten alle Vorschläge noch keine Lösung.
Man muss nämlich die thread prios der main loop prio angleichen, wenn beide ohne delays parallel laufen sollen
(std::threads laufen nämlich per prio=5 per default, main loop nur bei default prio=1!!):
funktioniert nicht, weil anfangs cfg noch keine Werte enthält und daher einen Fehler zurückgibt,Code:esp_pthread_cfg_t cfg; esp_pthread_get_cfg(&cfg); cfg.prio=1; esp_pthread_set_cfg(&cfg);
und
funktioniert auch nicht, weil die hier verwendete FunktionCode:esp_pthread_cfg_t cfg; if (esp_pthread_get_cfg(&cfg) != ESP_OK) { cfg = esp_pthread_get_default_config(); } cfg.prio=1; if (esp_pthread_set_cfg(&cfg) != ESP_OK) { printf("esp_pthread_set_cfg failed\n"); abort(); };
esp_pthread_get_default_config();
nicht gefunden wird.
siehe Topic-Posts u.a.
https://github.com/espressif/ESP8266...SDK/issues/609
https://github.com/espressif/esp-idf...ment-496157019
und folgende...
betroffene libs am ehesten wohl
https://github.com/espressif/ESP8266...ts/pthread/src
Hat jemand eine idee, wie es richtig geht?







Zitieren

Lesezeichen