Выполнение в цикле пока

Ответить
rusincor
Рядовой
Сообщения: 31
Зарегистрирован: 01.09.2019{, 21:28}
Репутация: 0
Имя: Руслан

Выполнение в цикле пока

#1

Сообщение rusincor » 11.05.2021{, 13:44}

Всем привет !
Столкнулся с такой проблемой, не работает функция "выполнять в цикле пока".
Подскажите может я что-то делаю не так.
Вот пример платы
Выполнять в цикле пока.flp
(101 КБ) 48 скачиваний

edyapd
Капитан
Сообщения: 768
Зарегистрирован: 20.09.2019{, 11:38}
Репутация: 65
Имя: Эдуард

Выполнение в цикле пока

#2

Сообщение edyapd » 11.05.2021{, 14:45}

rusincor, всё прекрасно работает. Просто вы не совсем понимаете, как это должно применяться.
Создайте ещё одну плату до и одну после. На обоих платах выведите что-нибудь в сом-порт. И вы заметите, что сперва вывелось с первой платы. Потом будет ожидаться, пока вы не нажмёте на кнопку и переменная не примет значение 10. И лишь затем сработает следующая плата.

Аватара пользователя
rw6cm
Полковник
Сообщения: 2284
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 335
Имя: Владимир

Выполнение в цикле пока

#3

Сообщение rw6cm » 11.05.2021{, 15:41}

rusincor писал(а):
11.05.2021{, 13:44}
Подскажите может я что-то делаю не так.
Кнопка внутри цикла ни к чему.
При включении условие цикла сразу его запускает.
Снаружи доступа внутрь рабочего цикла нет. Кнопку не нажать, условие =10 никогда не настанет.
Вот вам бесконечный цикл.))
Не знаю что вы хотели, но кнопку надо вынести.
выполнять в цикле.flp
(95.57 КБ) 41 скачивание
Win10-64, FLProg (portable)

edyapd
Капитан
Сообщения: 768
Зарегистрирован: 20.09.2019{, 11:38}
Репутация: 65
Имя: Эдуард

Выполнение в цикле пока

#4

Сообщение edyapd » 11.05.2021{, 16:03}

rw6cm, может я чего не понимаю. Но как раз если вынести кнопку из цикла, то её будет не нажать. И тогда как раз условие =10 никогда не настанет. Если же кнопка в цикле, то она будет постоянно опрашиваться.
Разницу в вашем примере и примере ТС это как раз видно. У ТС можно запустить отправку в сом-порт и остановить с помощью кнопки. Но после того, как дойдёт до 10, то кнопка (впрочем как и цикл) запускаться уже не будут.
В вашем примере кнопкой можно запустить цикл, но невозможно его остановить. После того, как переменная достигнет 10, повторно цикл не запустится, так как нет обнуления условия.

Аватара пользователя
rw6cm
Полковник
Сообщения: 2284
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 335
Имя: Владимир

Выполнение в цикле пока

#5

Сообщение rw6cm » 11.05.2021{, 17:13}

edyapd,
Цикл (в данном случае While) выполняется только по условию, в данном случае (пер.123) !=(10).
Если в условии о кнопке ни чего не сказано, ставьте их хоть сколько, пользоваться ими из цикла вы не сможете.
Доступа внутрь цикла из вне нет.
Выйти из него можно только, если предусмотрен в коде "break" (его нет в флп),
или условие цикла не выполнимо.
Win10-64, FLProg (portable)

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Выполнение в цикле пока

#6

Сообщение Sancho » 11.05.2021{, 17:51}

Вход будет отрабатываться в цикле только в том случае, если НЕ установлен режим "защита от дребезга".
Отключите его - всё заработает.
Поставьте кондёр, если нужно.
Посмотрите два варианта кода.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

edyapd
Капитан
Сообщения: 768
Зарегистрирован: 20.09.2019{, 11:38}
Репутация: 65
Имя: Эдуард

Выполнение в цикле пока

#7

Сообщение edyapd » 11.05.2021{, 17:55}

rw6cm, увидел в чём я заблуждался. Почему-то мне казалось, что опрос кнопки идёт в функции (и как по мне это было бы более правильно), а оказывается, что она опрашивается в начале каждого цикла.
СпойлерПоказать
изображение_2021-05-11_215232.png
И тогда да, если есть защита от дребезга, то кнопка опрашиваться не будет, так как зайдя в цикл программа там и останется.
Тут замечание Sancho очень верное.

rusincor
Рядовой
Сообщения: 31
Зарегистрирован: 01.09.2019{, 21:28}
Репутация: 0
Имя: Руслан

Выполнение в цикле пока

#8

Сообщение rusincor » 11.05.2021{, 18:04}

Спасибо за советы.
Сейчас не за компом, завтра как доберусь буду ковырять. По результатам отпишусь.

Аватара пользователя
rw6cm
Полковник
Сообщения: 2284
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 335
Имя: Владимир

Выполнение в цикле пока

#9

Сообщение rw6cm » 11.05.2021{, 18:32}

Sancho писал(а):
11.05.2021{, 17:51}
Вход будет отрабатываться в цикле только в том случае, если НЕ установлен режим "защита от дребезга".
Снимаю шляпу... Sancho, как всегда прав :)
(Как то мне надо было загнать кнопку в цикл, ни чего хорошего из этого не вышло.)
Беру часть своих слов обратно ))
п/с думаю и с кондюками будет еще та песня...

Отправлено спустя 3 часа 56 минут 46 секунд:
rusincor писал(а):
11.05.2021{, 18:04}
завтра как доберусь буду ковырять
если нужды останавливать на ходу цикл нет, можно кнопку вынести.
так будет проще.
Вложения
выполнять в цикле10.flp
(131.24 КБ) 39 скачиваний
Win10-64, FLProg (portable)

rusincor
Рядовой
Сообщения: 31
Зарегистрирован: 01.09.2019{, 21:28}
Репутация: 0
Имя: Руслан

Выполнение в цикле пока

#10

Сообщение rusincor » 13.05.2021{, 09:26}

Привет народ всем спасибо проблема решилась.
Все дело было именно в защите от дребезга --- мать ее так
Только убрал все заработало

:smile152: :smile152: :smile152:

Ответить

Вернуться в «Помогите, а то я "нимагу"»