#if defined RECEIVE || TRANSMIT
bool flag = true;
// and some shit
#endif
void setup() {}
void loop() {//code} а, это был неформализованный пример объявления?
он срабаоьтывает ПОКА выполняется условие Вот это Кстати проверь - оно ваще когда-то становится false ? дык эта..... ну тут бы про циклы почитать ваще-то бы имело бы смысл....
избавился от 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;
}
}
Комментарии: 42
Emptyname
#if defined RECEIVE || TRANSMIT bool flag = true; // and some shit #endif void setup() {} void loop() {//code} а, это был неформализованный пример объявления?
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 - ну его нах, забудь, не думай об этом, к чему расстраиваться :)))