Управление меню одной кнопкой
Добавлено: 25.11.2020{, 20:54}
Butt-Menu
. .
Блок для управления меню с помощью одной кнопки.
Подходит для одно и двух уровневых меню.
Обладает простым, не путанным алгоритмом управления. Самое сложное - вход в меню (три клика) Но он и не должен быть слишком простым.
Имеет дополнительные выходы для управления устройством вне меню.
Алгоритм:
- Тройной клик - вход/выход в меню
- Одиночный клик - переход по пунктам меню (вниз)
- Двойной клик - вход/выход в подменю (группу параметров)
- Удержание - увеличение параметра (инкремент)
- Клик+удержание уменьшение параметра (декремент)
Вне меню доступны:
- Одиночный клик
- Двойной клик
- Удержание - инкрементный сигнал (incr0)
- Клик+удержание - инкрементный сигнал (incr1)
При входе в меню выходы "внешнего" управления блокируются и наоборот при активных "внешних" выходах, меню не активно.
Параметры пользователя:
Bounce - таймаут для антидребезга (аналог штатного) Не используйте одновременно со штатным!
LongTime - Таймаут до удержания.
ClickTime - Таймаут между кликами
incrVal - шаг инкремента (время между инкрементными тиками)
Внимание!!! Блоку необходима обратная связь в виде boolean переменной с выхода AG блока меню.
Тестовый проект для испытания данного блока. (Потребуется одна кнопка и дисплей LCD 2004)
Описание проекта:
При запуске контроллера на дисплее рабочее окно (вне меню).
Здесь можно:
"Включить мотор" - одиночный клик,
"Выключить мотор" - двойной клик.
"Прибавить скорость" - удержание,
"Убавить скорость" - клик+удержание
Для входа в меню - тройной клик.
Для выхода из меню в любой момент - так же тройной клик.
С помощью одиночных кликов (с паузой в 1 сек) перемещаемся по пунктам меню вниз. (меню должно быть зациклено)
Для входа в подменю (группу параметров) - двойной клик.
Для выхода в главное меню - так же двойной клик
Для увеличения значения параметра - просто удерживаем кнопку
Для уменьшения значения параметра - один короткий клик + так же удерживаем кнопку.
Гораздо проще попробовать чем описывать.
.
. .
Блок для управления меню с помощью одной кнопки.
Подходит для одно и двух уровневых меню.
Обладает простым, не путанным алгоритмом управления. Самое сложное - вход в меню (три клика) Но он и не должен быть слишком простым.
Имеет дополнительные выходы для управления устройством вне меню.
Алгоритм:
- Тройной клик - вход/выход в меню
- Одиночный клик - переход по пунктам меню (вниз)
- Двойной клик - вход/выход в подменю (группу параметров)
- Удержание - увеличение параметра (инкремент)
- Клик+удержание уменьшение параметра (декремент)
Вне меню доступны:
- Одиночный клик
- Двойной клик
- Удержание - инкрементный сигнал (incr0)
- Клик+удержание - инкрементный сигнал (incr1)
При входе в меню выходы "внешнего" управления блокируются и наоборот при активных "внешних" выходах, меню не активно.
Параметры пользователя:
Bounce - таймаут для антидребезга (аналог штатного) Не используйте одновременно со штатным!
LongTime - Таймаут до удержания.
ClickTime - Таймаут между кликами
incrVal - шаг инкремента (время между инкрементными тиками)
Внимание!!! Блоку необходима обратная связь в виде boolean переменной с выхода AG блока меню.
Тестовый проект для испытания данного блока. (Потребуется одна кнопка и дисплей LCD 2004)
Описание проекта:
При запуске контроллера на дисплее рабочее окно (вне меню).
Здесь можно:
"Включить мотор" - одиночный клик,
"Выключить мотор" - двойной клик.
"Прибавить скорость" - удержание,
"Убавить скорость" - клик+удержание
Для входа в меню - тройной клик.
Для выхода из меню в любой момент - так же тройной клик.
С помощью одиночных кликов (с паузой в 1 сек) перемещаемся по пунктам меню вниз. (меню должно быть зациклено)
Для входа в подменю (группу параметров) - двойной клик.
Для выхода в главное меню - так же двойной клик
Для увеличения значения параметра - просто удерживаем кнопку
Для уменьшения значения параметра - один короткий клик + так же удерживаем кнопку.
Гораздо проще попробовать чем описывать.
.