ESP8266 - problem z pętlą while do - Wersja do druku +- Arduino Polska Forum (https://forum.arduinopolska.pl) +-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino) +--- Dział: Programowanie w Arduino (https://forum.arduinopolska.pl/dzial-programowanie-w-arduino) +--- Wątek: ESP8266 - problem z pętlą while do (/watek-esp8266-problem-z-p%C4%99tl%C4%85-while-do) |
ESP8266 - problem z pętlą while do - yugodriver - 16-11-2016 Cześć, Mam problem z pętlą while do w ESP8266. Z chwilą gdy kontroler rozpoczyna pętle while, zawiesza się. Znalazłem informację w internecie, że jest to problem znany ale nigdzie nie znalazłem rozwiązania. Prosze o pomoc. Jak zmienić poniższy kod, tak żeby nie wykorzystywać pętli while do. Kod: czas = millis(); //ustaw zmienną czas równą aktualnej liczbie millis RE: ESP8266 - problem z pętlą while do - krn78 - 16-11-2016 Nie jestem pewien, czy mam rację, ale po co średnik po warunku przy pętli while? Jeśli przyjąć, że milis(); zwróci jakąś wartość do zmiennej czas, to potem uzależniasz pętlę while od różnicy milis() i wartości zmiennej czas. W efekcie da Ci to ok. 0, co na pewno jest mniejsze niż 60000. Jeśli potem jest średnik, to tak jakbyś wpisał kod: while(1); - co powoduje powstanie niekończącej się pętli. Na moje kod powinien wyglądać następująco: Kod: czas = millis(); //ustaw zmienną czas równą aktualnej liczbie millis RE: ESP8266 - problem z pętlą while do - yugodriver - 17-11-2016 też zauważyłem ten średnik, ale to nie w nim jest problem. Problemem jest to, że procesor restartuje się w momencie dojścia do pętli while (jakiejkolwiek pętli while - nie tylko tej konkretnej). Rozwiązaniem może być pętla for, ale przy tej pętli program nie chciał mi się kompilować :-( Problem rozwiązałem w następujący sposób (info dla potomnych :-) ): Kod: czas = millis(); RE: ESP8266 - problem z pętlą while do - krn78 - 17-11-2016 Tyle że w przypadku warunku on wykona się raz lub się nie wykona A gdybyś spróbował, zamiast pętli while, zastosować pętlę do... while? RE: ESP8266 - problem z pętlą while do - yugodriver - 17-11-2016 (17-11-2016, 14:00)krn78 napisał(a): Tyle że w przypadku warunku on wykona się raz lub się nie wykona To może napiszę trzeci raz . While restartuje mikrokontroler. Dlaczego warunek miałby się nie wykonać? Pętla będzie się wykonywać przez minutę RE: ESP8266 - problem z pętlą while do - krn78 - 22-11-2016 Ok, nie zauważyłem polecenia goto Przy okazji, nie wiedziałem, że Arduino je obsługuje. Człowiek uczy się całe życie |