Помогите правильно сделать алгоритм счетчика
- Войдите на сайт для отправки комментариев
Пт, 08/04/2016 - 13:46
Ребят, помогите с алгоритмом решения
Функция: в цикле опрашиваются несколько датчиков и там же в условиях запускается их коррекция.
Если значение ВСЕХ датчиков установилось, нужно выйти из цикла.
Скетча нет под рукой, но логику и так, наверное, подскажете.
for { if мало - увеличить else if много - уменьшить else XXXXXX if мало - увеличить else if много - уменьшить else YYYYY if мало - увеличить else if много - уменьшить else ZZZZZ }
Когда сработали и XXXX и YYYYY и ZZZZZ (все), то выход из цикла. Как реализовать?
Если просто х++ в каждом последнем элсе и проверка х==3 то насчитает много, ибо плюсует каждый цикл, а датчики устанавливают показания за разный период времени.
То есть XXXX YYYYY уже соответствуют нужному условию, а ZZZZZ все еще продолжает коррекцию
Туплю, не могу придумать как сделать(((
if (XXXX и YYYYY и ZZZZZ) break;
АААА!!!
Точно!
Можно ж проверить, что датчики не корректируются по LOW на выходах.
Спасибо!
Пора в отпуск)))
if (XXXX и YYYYY и ZZZZZ) break;
А лучше тоже самое в самом for записать (во второй секции for). Типа так:
if (мало - увеличить)... А откуда известно что мало-то? С чем-то же сравнивается у тебя там?
Полюбому сравниваются X,Y и Z, с какими-то другими переменными X1, Y1 и Z1.
Условие выхода укажи в самом начале да и всё:
Или:
If (X=X1 && Y=Y1 && Z=Z1) {return};
Показания датчиков сравниваются с "нормативом"
Если мало - включается один вывод
Если много - второй вывод
Если "норма" - оба вывода остаются выключены.
И так на нескольких датчиках одновременно.
Да понял я, понял))) Уже справлюсь))
Я ж говорю, протупил с логикой, ардуино мне непривычен.
Я все еще "думаю" мерками школьного бейсика.
Я все еще "думаю" мерками школьного бейсика.
А какая разница? Там всё точно также. Если есть знания - уважайте их, не принижайте и не бойтесь применять.