как сохранить состояние действия

foxmania
Offline
Зарегистрирован: 22.11.2018

всем привет,
каким образом можно сохранить или удержать состояние програмно,
есть два значения value1 value2
и две кнопки,
как при нажатии левой кнопки войти в режим счётчика value1
поднимать и опускать значение двумя кнопками,
после нажать кнопку два и войти в режим счётчика value2,
и также поднимать и опускать,
как называется этот тип программирования,
мне для этого нужно функции создавать или можно обойтись if else  int флагами,
спасибо.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

foxmania пишет:

поднимать и опускать значение двумя кнопками,
после нажать кнопку два и войти в режим счётчика value2,

Так для чего используется кнопка два, для "поднимать и опускать значения" или для изменения режима?

Контроллер не обладает телепатией и не может угадать, что Вы от него хотите. Он может только фиксировать нажатия и отпускания.

В принципе, есть такие варианты как "длинное нажатие" и "двойной щелчок".

Так что Вы поясните подробнее, как по Вашему мнению должна работать программа.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

?

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

Добавьте кнопок - для Вас это будет идеальное решение.

foxmania
Offline
Зарегистрирован: 22.11.2018

получается что без таймера на миллис не обойтись,
и ещё какой-то флаг или логическую переменную нужно добавлять,
Предполагаю нужно сделать опрос кнопок постоянный,
длинное нажатие левой кнопки активирует режим_1
Длинное нажатие правой кнопки активирует режим_2
Если активен режим_1 запускается таймер на две секунды на опрос есть ли действия какие-либо,
или можно попробовать на 2 сек тайминг выставить для пробы,
если режим 1 активен,
коротким нажатием левой кнопки идёт инкремент значения_1,
коротким нажатием правой кнопки идёт декремент значения_1,
выход из режима по времени или бездействию,

с режимом_2 тоже самой только идёт инкремент или декремент значения_2,

для меня основная сложность сейчас это запустить режим_1 с помощью длинного нажатия левой кнопкой,
и после использовать эту же кнопку для инкремента коротким нажатием,

да головняк есть, не спорю с этим.
спасибо.

v258
v258 аватар
Offline
Зарегистрирован: 25.05.2020

foxmania пишет:

для меня основная сложность сейчас это запустить режим_1 с помощью длинного нажатия левой кнопкой,
и после использовать эту же кнопку для инкремента коротким нажатием,

да головняк есть, не спорю с этим.

Любая кнопочная библиотека позволяет работать и с длинными, и с короткими нажатиями без каких либо головняков

foxmania
Offline
Зарегистрирован: 22.11.2018

согласен, на ардуине всё легче собирать,
но иногда, если речь идёт о прерываниях и таймерах,
а именно о реальных прерываниях на pic, avr и других микроконтроллерах,
когда это всё не завёрнуто в оболочку ардуино,
приходится думать, и порой много,
не все проф программисты
спасибо за подсказки.

 

v258
v258 аватар
Offline
Зарегистрирован: 25.05.2020

Не вижу нужды в прерываниях по вашим хотелкам