Пример во вложении
Захват-3.png
Скрытый текст:
Пример во вложении
Захват-3.png
Скрытый текст:
Последний раз редактировалось petera; 12.09.2019 в 11:50.
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Мой канал на РУТУБЕ
https://rutube.ru/channel/23641433/
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg
Вся логика сделана на ф. кнопках
для индикации вкл. состояния используются битовые лампы (Этап 1)
Скрытый текст:
Затем у ламп меняется оформление, внешний вид ламп выбран имитирующий состояние кнопок (Этап 2)
Скрытый текст:
Последний штрих лампы помещаются поверх ф.кнопок (Этап 3)
Скрытый текст:
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Мой канал на РУТУБЕ
https://rutube.ru/channel/23641433/
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg
Хотелось бы пояснить логику работы функций в кнопках, т.к. есть не очевидные моменты
Для контроля последовательности нажатия кнопок 1-2-3-4 используются вспомогательные биты PSB300..303. Регистр со значением для линейки выбран PSW500.
Задача: - в зависимости от комбинации бит PSB300..303 при нажатии любой кнопки нужно записывать в PSW500 фиксированные значения 25, 50, 75, 100.
И так в каждой кнопке есть цепочка функций, функции выполняются последовательно, сверху вниз, в том порядке как они расположены. Некоторые функции выполняются безусловно, а на выполнение остальных наложены ограничения. Ограничения на выполнение для отдельных функций спрятаны за кнопкой "Пароль", например
Захват-6.png
1. Кнопка №1
Захват-4.png
цепочка состоит из следующих функциий
- Инвертировать бит PSB300(бит состояния самой кнопки №1), выполняется безусловно. Визуально - нажали Включилось следующие нажатие Выключилось
- Включить бит PSB300(бит состояния кнопки №1), выполняется по условию если включен бит PSB301(состояние кнопки №2). Нивелирует результат предыдущей функции, т.е. если следующая кнопка включена, то эту кнопку выключить нельзя!
- функция PSW500 =PSW500 - 25, выполняется безусловно. Но фактически будет выполняться когда в PSW500 уже есть число 25, как результат предыдущего нажатия кнопки.
- функции PSW500 = 25, выполняется по условию если в текущем нажатии бит PSB300 установился первой функцией цепочки или второй. Нивелирует результат предыдущей функции, т.е. в PSW500 значение < 0 не возникнет.
- функции PSW500 = 50, выполняется по условию если бит PSB301(если кнопка №2) вкл. Нивелирует результат предыдущей функции. Если больше нет нажатых кнопок это значение будет результатом нажатия кнопки.
- функции PSW500 = 75, выполняется по условию если бит PSB302(если кнопка №3) вкл. Нивелирует результат предыдущей функции. Если больше нет нажатых кнопок это значение будет результатом нажатия кнопки.
- функции PSW500 = 100, выполняется по условию если бит PSB303(если кнопка №4) вкл. Нивелирует результат предыдущей функции и это значение будет результатом нажатия кнопки.
2. Кнопка №2.
Захват-5.png
цепочка функций аналогичная, меньше на одну функцию (нет функции PSW500 = 25)
3. Кнопки №3 и №4
цепочки функций аналогичные, в каждой меньше на одну функцию (нет функции PSW500 = 50 и PSW500 = 75 соответственно)
Последний раз редактировалось petera; 12.09.2019 в 13:08.
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Мой канал на РУТУБЕ
https://rutube.ru/channel/23641433/
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg