а флаг как объявил и где? global flag: boolean setup flag = false loop if (!flag) { flag = true; for(....) flag = false; }

Комментарии: 42

  1. Emptyname

    #if defined RECEIVE || TRANSMIT bool flag = true; // and some shit #endif void setup() {} void loop() {//code} а, это был неформализованный пример объявления?

  2. Emptyname

    Все равно, как только натыкается, плюется стэком, собака... if (!flag) { for(int i = 0; i < 10; i++) { if(send_instance.to_second_point_packets_array[i] == 3) continue; else if (send_instance.to_second_point_packets_array[i] == 0) {break; flag = true;} while(send_instance.to_second_point_packets_array[i] != 2) { esp_now_set_self_role(ESP_NOW_ROLE_SLAVE); esp_now_register_recv_cb(OnDataRecv); if(send_instance.to_second_point_packets_array[i] == 2) {break; flag = true;} } } }

    • Dark256

      что там про стэк оно пишет?

      • Emptyname

        bool flag; setup() {flag = false} loop() {//code over here}

        • Dark256

          Оберни ВЕСЬ код в скобки.

          • Emptyname

            Как будто пространство имен?

            • Dark256

              а... while у тебя какой-то.... continue и else if снабди скобками

              • Emptyname

                ссылки на строки, которые вообще не при делах вот да, наверное в нем оно закручивается и не выходит

                • Dark256

                  добавь перед while СЧЁТЧИК cnt = 0; while (..... && cnt < 3) { cnt++ } типа например

                  • Emptyname

                    сделать из while for?

                    • Dark256

                      3 раза дернуло и на выход в вайле к условию добавь "И счетчик менсэ трёх" не. просто добавь чек повторов

                      • Emptyname

                        т.е. while "вращается" не вечно, если не выполнено условие, а ограниченное число раз, да?

                        • Dark256

                          он срабаоьтывает ПОКА выполняется условие Вот это Кстати проверь - оно ваще когда-то становится false ? дык эта..... ну тут бы про циклы почитать ваще-то бы имело бы смысл....

                          • Emptyname

                            подразумевается, что он "крутит", пока в i-том 1 значит вместо != 2 вписать == 1?

                            • Dark256

                              for, while, repeat until.... forEach, forIn.....

                            • Dark256

                              я если честно в логику чего там где не вкуриваю. лень. я в целом и общем. по отладке. советую.

                              • Emptyname

                                окей, на том спасибо

                              • Emptyname

                                избавился от while, сделал на флаге, теперь только одну ошибку в стэке вырыгивает for(int i = 0; i < 10; i++) { if (flag) i--; if(send_instance.to_second_point_packets_array[i] == 3) {continue;} else if (send_instance.to_second_point_packets_array[i] == 0) {break; flag = true;} if(send_instance.to_second_point_packets_array[i] != 2) { esp_now_set_self_role(ESP_NOW_ROLE_SLAVE); esp_now_register_recv_cb(OnDataRecv); if(send_instance.to_second_point_packets_array[i] == 2) {break; flag = false;} flag = true; } }

                          • Emptyname

                            дааа...когда после принятия там появится 2, то он ломает и while и for и идет дальше хотя....может break только while ломает...

                            • Dark256

                              трэйсы на консоль выведи. всех делов.

                              • Emptyname

                                ого, вот foreach в курсе C++, который я смотрел довольно поздно изучался, да и он очень мало отличий и уникальностей имеет, вроде throw - catch ?

                                • Dark256

                                  1. Пиздить 2. Да, весь код оберни в try{} а catch - ну его нах, забудь, не думай об этом, к чему расстраиваться :)))

Не нашли ответ?

Вам также может быть интересно