выполнение плат по условию

Вопросы от новичков
Ответить
evgen23
Рядовой
Сообщения: 21
Зарегистрирован: 14 янв 2020, 12:27
Имя: евгений

выполнение плат по условию

Сообщение evgen23 »

Приветствую коллеги. Объясните, кому не лень, как работает выполнение плат по условию и выполнять в цикле? Как этим грамотно пользоваться?
или ссылочку киньте, а то искал искал, так и не нашел...
Аватара пользователя
Alias
Лейтенант
Сообщения: 481
Зарегистрирован: 27 ноя 2017, 13:15
Откуда: Rus44
Имя: Michael
Контактная информация:

выполнение плат по условию

Сообщение Alias »

Мне не лень, но с телефона много не напишешь.
Выполнение плат по условию - механизм разгрузки Ардуино от ненужных в данный момент расчётов.
Допустим, у вас с десяток датчиков температуры: в котле, в бойлере, на радиаторе SSR, помещении и в подвале. Нет смысла в каждом цикле гонять код, ведь совершенно очевидно, что в подвале температура не меняется каждую секунду, зато котел лучше проверять почаще. Соответственно, сделаем опрос датчиков, скажем, каждые 1, 10, 5 секунд и 1 и 10 минут соответственно. Для этого от часов реального времени через делители частоты будем присваивать на один программный цикл единицу специальным булевым переменным с именами, допустим, 1с, 5с, 10с, 1м, 10м, а платы, где стоят датчики, а вместе с ними и вся логика, к ним относящаяся, будем выполнять по условию, что 1с= true для платы с первым датчиком и так далее. Таким образом, мы высвободим мощности для других задач.
На выполнении плат по условию можно организовать меню любой сложности, работу с дисплеями и так далее, все зависит от потребностей и фантазии.
Выполнение в цикле - это когда плата будет выполняться в цикле до бесконечности, пока выполняется условие, при этом выполняться будет только одна эта плата.
evgen23
Рядовой
Сообщения: 21
Зарегистрирован: 14 янв 2020, 12:27
Имя: евгений

выполнение плат по условию

Сообщение evgen23 »

[ref=#404040]Alias[/ref], спасибо. Это то, что я себе представлял.
Теоретическое понимание есть, только на практике не получается этим воспользоваться... не работает..
Возьмем, к примеру, управление сдвижными воротами. Есть 2 кнопки, одна А открыть, другая В закрыть.
В процессе открытия необходимо остановить ворота нажатием любой кнопки, а далее, в зависимости от
потребности, либо продолжить открытие, либо включить закрытие... Я разделил алгоритм на 2 платы,
для кнопки А и для кнопки В. Вот теперь для меня самое интересное.. Не получается заставить выполнять
плату кнопки А, пока ворота открываются.. (предполагаемый алгоритм: опрос кнопок, если нажата А, то выполнение платы открытия
до сработки концевика, либо до нажатия любой кнопки для остановки.)
Мне бы понять, как в программе заложен механизм использования выполнения плат по условию, в цикле.
Аватара пользователя
Alias
Лейтенант
Сообщения: 481
Зарегистрирован: 27 ноя 2017, 13:15
Откуда: Rus44
Имя: Michael
Контактная информация:

выполнение плат по условию

Сообщение Alias »

Мне кажется, что в данном случае городить огород из плат по условию нет никакого резона, не тот масштаб. Тут все реализуется простой логикой. Я по-прежнему с телефона, бука под рукой нет, чтобы накидать наглядно.
Смысл использования выполнения плат возникает, если в программе много тяжёлых задач. Например, у меня в проекте на Меге более сотни переменных, пять свободных пинов и чтобы ардуинка нормально это переваривала, использовал полтора десятка флагов для выполнения конкретных плат.
Например, дисплей 5110 отображает информацию в 6 строках и 14 столбцах, это, насколько понял, достаточно тяжёлое занятие. Поэтому генерация текста со множеством манипуляций в дежурном режиме происходит только один раз в шесть секунд, как и обновление экрана. Чаще и не нужно.
Сложный блок пересчёта уставок выполняется один раз в час, суточная аналитика - только в полночь, опросы датчиков - три разных интервала, и так далее.
Постоянно крутятся только две платы: RTC и генератор синхроимпульсов на его основе для работы плат по условию, у ecoins это называется Диспетчер задач, и мониторинг клавиатуры.
evgen23
Рядовой
Сообщения: 21
Зарегистрирован: 14 янв 2020, 12:27
Имя: евгений

выполнение плат по условию

Сообщение evgen23 »

Alias писал(а): 09 фев 2020, 13:00 Мне кажется, что в данном случае городить огород из плат по условию нет никакого резона, не тот масштаб. Тут все реализуется простой логикой.
это проще всего... тут как раз не сложный код хочется реализовать с условиями и циклом, чтобы понять, как это работает.

Я понять хочу.... а ВЫ, коллега, меня отговариваете..)))

Отправлено спустя 1 минуту 23 секунды:
...понять, как работает в flprog.
Аватара пользователя
Alias
Лейтенант
Сообщения: 481
Зарегистрирован: 27 ноя 2017, 13:15
Откуда: Rus44
Имя: Michael
Контактная информация:

выполнение плат по условию

Сообщение Alias »

Хорошо. Пишите, коллега )))
На первой плате ставим генератор импульсов - симметричный мультивибратор или как там, скажем, на 1Гц. Нет, мало, давайте пятьсот мс. За ним - счетчик, пишущий текущее значение в переменную.
На второй плате берём эту переменную, конвертируем число в текст, выводим на дисплей или в uart, как удобнее.
Запускаем. Что происходит? Верно, число увеличивается.
Теперь возвращаемся к первой плате, ставим условие Выполнять в цикле, пока переменная меньше десяти.
Запускаем. Что видим? А выводы?
Для таких опытов можно иметь специальную Nano на шнурке usb, чтобы при любом сомнении накидать схемку и проверить корректность ее работы. Я так отлаживаю отдельные блоки из своих проектов, чтобы доподлинно знать, что там происходит. Визуализация через дисплей или uart. Без подобного рода техоснастки можно даже в простых проектах в тупик зайти.
Rodgerask
Сержант
Сообщения: 141
Зарегистрирован: 09 дек 2019, 14:31
Имя: del

выполнение плат по условию

Сообщение Rodgerask »

//del
Последний раз редактировалось Rodgerask 12 фев 2020, 23:41, всего редактировалось 1 раз.
Ingwar
Полковник
Сообщения: 1928
Зарегистрирован: 28 окт 2015, 22:47
Откуда: Ленобласть
Имя: Игорь
Поблагодарили: 2 раза

выполнение плат по условию

Сообщение Ingwar »

Проект в 6.2.2
условия_платы.flp
Подключите, нажимайте 2-ве кнопки в различных комбинациях, смотрите в СОМ порт и наблюдайте светодиод на плате.
Так Вы быстрее поймете как это работает.
Если нет возможности/желания использовать последние версии
[spoiler]
Безымянный.png
[/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.
evgen23
Рядовой
Сообщения: 21
Зарегистрирован: 14 янв 2020, 12:27
Имя: евгений

выполнение плат по условию

Сообщение evgen23 »

[ref=#404040]Alias[/ref], спасибо very much.. понял примерно... осталось на практике закрепить..))
[ref]Ingwar[/ref], спасибо за пример..)
vovka1973
Подполковник
Сообщения: 1202
Зарегистрирован: 14 фев 2016, 14:16
Откуда: kazahstan
Благодарил (а): 32 раза
Поблагодарили: 6 раз

выполнение плат по условию

Сообщение vovka1973 »

evgen23 писал(а): 09 фев 2020, 17:34 понял примерно...
что именно поняли ?по логике нажимаете на кнопку А выполняется условие где можно нажать кнопку В ,нажимаем кнопку В выполняется условие где работает счетчик ,но отпускаем кнопку А по идеи счетчик должен перестать работать так как условие В должно перестать работать ,а счетчик работает пока не отпустим кнопку А и опять ее нажмем. Я вот так и не понял почему так работают условия если с одной платой все хорошо то с двумя и более ерунда какая-то :smile37:
Последний раз редактировалось vovka1973 09 фев 2020, 17:53, всего редактировалось 2 раза.
Изображение
Аватара пользователя
Alias
Лейтенант
Сообщения: 481
Зарегистрирован: 27 ноя 2017, 13:15
Откуда: Rus44
Имя: Michael
Контактная информация:

выполнение плат по условию

Сообщение Alias »

От меня примеров не ждите, я с градусником и на пилюлях, в доступности только телефон. Впрочем, я уже об этом дважды упомянул, молчаливо извинившись.
Rodgerask писал(а): 09 фев 2020, 16:52 Очень много текста.... и нет ни примера ни проекта...хотя от вас всегда так.
Слишком все голословно выглядит...НЕНАГЛЯДНО что-ли...причем вы то сами требуете этого от других.
Требую? И где же? Хотелось бы подтверждения Ваших слов. Да хоть в ЛС.
Rodgerask
Сержант
Сообщения: 141
Зарегистрирован: 09 дек 2019, 14:31
Имя: del

выполнение плат по условию

Сообщение Rodgerask »

//del
Последний раз редактировалось Rodgerask 12 фев 2020, 23:41, всего редактировалось 1 раз.
Аватара пользователя
Alias
Лейтенант
Сообщения: 481
Зарегистрирован: 27 ноя 2017, 13:15
Откуда: Rus44
Имя: Michael
Контактная информация:

выполнение плат по условию

Сообщение Alias »

Не нашлось? Тогда просим модераторов удалить флуд?
PS Vladislaveu это не Ваш второй ник? Вернее первый, он же старше на полчаса. И ID пользователя соседний. Да и почерк тот же.
edyapd
Капитан
Сообщения: 768
Зарегистрирован: 20 сен 2019, 11:38
Имя: Эдуард

выполнение плат по условию

Сообщение edyapd »

[ref]vovka1973[/ref], вы попробуйте на пальцах или карандашом на листке.
Переменная А становится true когда нажимаем кнопку А.
Переменная Б становится true когда нажимаем кнопку Б, при условии, что переменная А true.
Ну со счётчиком там всё понятно, плата заработала и счётчик начал считать.
Теперь отпускаем кнопку А. Переменная А стала false. А переменная Б - ?
А если отпустить кнопку Б, это как-то повлияет на переменную Б?
Дальше думаю сами разберётесь.
Iqubik
Сержант
Сообщения: 144
Зарегистрирован: 20 янв 2020, 06:10
Откуда: Ставрополь
Имя: Николай

выполнение плат по условию

Сообщение Iqubik »

У меня вот так:

каждая плата это один девайс/функция
каждой плате есть свой bool=EnPlata1
управление функциями из меню bool(true/false)

Меню выбирает какую функцию активировать (true), меняя значение EnPlata1=true - нужная плата стартует. Профит. Нужно выключить или включить плату - для этого есть набор булевых переменных.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
vovka1973
Подполковник
Сообщения: 1202
Зарегистрирован: 14 фев 2016, 14:16
Откуда: kazahstan
Благодарил (а): 32 раза
Поблагодарили: 6 раз

выполнение плат по условию

Сообщение vovka1973 »

edyapd писал(а): 09 фев 2020, 19:36 вы попробуйте на пальцах или карандашом на листке.
то есть вы хотите сказать это правильно скетч работает ? я отпускаю кнопку А переменная В становиться false и плата где переменная В true все равно работает счетчик ? на пальцах я думал так при отпускании кнопки А выполняется сброс всех плат в false так как В становиться false. А это не так и если делать так логику где нужно соблюсти правило что бы сработало то с начало отпускаем кнопку В потом кнопку А ,а как же защита от дураков которые правило не знают ?

Отправлено спустя 3 минуты 41 секунду:
Iqubik писал(а): 09 фев 2020, 23:45 У меня вот так:
у вас плата срабатывает один раз и нет зависимости следующей платы от предыдущей как в том примере.
Изображение
edyapd
Капитан
Сообщения: 768
Зарегистрирован: 20 сен 2019, 11:38
Имя: Эдуард

выполнение плат по условию

Сообщение edyapd »

vovka1973 писал(а): 10 фев 2020, 03:43 я думал так при отпускании кнопки А выполняется сброс всех плат в false так как В становиться false. А это не так и если делать так логику где нужно соблюсти правило что бы сработало то с начало отпускаем кнопку В потом кнопку А ,а как же защита от дураков которые правило не знают ?
Условие, для того, чтобы переменная Б стала false есть только одно - отпускание кнопки Б. То, что переменная А стала false только прекращает выполнение второй платы и не более. А по сути получается, что переменная Б просто защёлкнулась. И теперь, отпустив кнопку Б, мы можем наблюдать как работает счётчик. НО, если при отпущенной кнопке Б нажать на А, то переменная Б сразу станет false, так как разблокируется возможность её изменения.
Про защиту от дураков не совсем понял.
vovka1973
Подполковник
Сообщения: 1202
Зарегистрирован: 14 фев 2016, 14:16
Откуда: kazahstan
Благодарил (а): 32 раза
Поблагодарили: 6 раз

выполнение плат по условию

Сообщение vovka1973 »

Я понял про что вы. Просто после отпускания кнопки А потом кнопки Б плата все равно считает пока не выполнить условие с начало опускаем кнопку В потом А, думаю просто так нельзя делать изначально будут не понятки в сложном скетче
Изображение
edyapd
Капитан
Сообщения: 768
Зарегистрирован: 20 сен 2019, 11:38
Имя: Эдуард

выполнение плат по условию

Сообщение edyapd »

vovka1973 писал(а): 10 фев 2020, 04:45 думаю просто так нельзя делать изначально будут не понятки в сложном скетче
Тут уже решать тому, кто делает так. Для одних это "баг", для других "фича".
Ответить

Вернуться в «Начинающим»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость