2 раза моргуть светодиодом в Case:
- Войдите на сайт для отправки комментариев
Здравствуйте!
В чем задумка, когда выбирается определенный оператор Case, то происходит индикация светодиодом этого режима. Например: при выборе Case 1: светодиод моргнет 2 раза, потом прекратит моргать и начнется выполнение основного кода. При выборе Case 2: светодиод моргнет 3 раза, остановится моргать, начнется выполнение программы. Это как алгоритм и пример. Но при использовании цикла for или while - светодиоды продолжают моргать и из цикла не выходит. Подозреваю, что проблема в условиях самого цикла. Вот часть моего нубо-кода.
Case 1:
for(int i=0; i<2; i++) {
digitalWrite(Led, 1);
delay(500);
digitalWrite(Led, 0);
delay(500);
if(i=2) break;
}
/* код программы /*
break;
Но светодиоды продолжают мигать, цикл бесконечен.
Пожалуйста, подскажите в каком направлении думать и на что обратить внимание по данной проблеме.
Во-первых код нужно вставлять по правилам. Во-вторых - полностью. В-третьих - да, все дело в цикле. Мой хрустальный шар говорит, что условие case 1: выполняется при каждой итерации loop();
Принял, с мобильной версии просто не получается.
То есть цикл выполняется, но как он выполнен программа идет дальше и когда по кругу возвращается к case 1:, то выполняется все заново?
да, именно так.
И ремарка - строчка с break не выполнится никогда. Но на выполнение это не влияет
Значит как вариант в самом теле case 1: можно добавить условие на флаг(грубо говоря) и когда флаг true, то выполнять все, что в условии, а если false, то условие не выполнять и только в case 2: уже поменять переменную флага для первоого case 1:, чтобы при переключении условие выполнилось опять, примерно так можно?
В любом мобильном браузере есть "кнопочка" "версия для ПК"
Что гадать? Вставь весь код по правилам форума и тебе подскажут.
Добрый день! Вот часть моего нубо-кода:
Отдельная функция для моргалки, которая вызывается по событию. Можно сравнивать i с глобальной переменной, сколько она будет, столько раз и моргнет ) Правда над немного переделать под себя.
Еще есть программа, где можно настраивать время горения двух диодов и паузу между ними.
Чтобы заинтересованный помочь мог бы рассмотреть ситуацию, тут принято выкладывать компилируемый запускаемый кусок кода, демонстрирующий ошибку.
Часто, при создании такого шедевра, автор вопрос сам находит ответ. ;)))
Компилируемый запускаемый код тут, но непонятна ситуация, если бы был полный код, можно было бы подумать.