Обработчик кнопок с одновременным нажатием 2-х.

dim3740
dim3740 аватар
Offline
Зарегистрирован: 25.03.2015

Всего имеется 16 кнопок. Нужно 2 режима.

1 режим  (вкл тумблером).

При нажатии кнопки 1 стартует  функция Ф_ОН (1), т.е. с параметром 1. При отжатии кнопки  1 должна выполняться функция Ф_ОФ(1). Предусмотреть константу, определяющую задержку начала выполнения Ф_ОФ,  в пределах 50...200 мс.

При нажатии и удержании кнопки  1 (и выполнения Ф_ОН (1) и последующего нажатия кнопки 2 должна стартовать функция Ф_ОН(2).  При последующем отпускании кнопки 1 - выполняться Ф_ОФ(1).  И т.п.  Максимальное количество одновременно нажатых и удерживаемых кнопок - 2 штуки.

2 Режим (тумблер у другом положении)

При нажатии кнопки 1 стартует функция Ф_ОН(1). При отпускании кнопки 1, ничего не происходит. При нажатии кнопки 2 последовательно стартуют 2 функции:  а)Ф_ОФ(1) , т.е. предыдущая отпущенная кнопка    б) Ф_ОН(2).    И т.п.

Функция Ф_ОФ(N)  с параметром последней нажатой кнопки стартует при выключении режима 2 тумблером.

Использовать только таймеры  1,2,  без библиотек. Переменная нажатия кнопок - 16 бит.

 

1 тыс.  Скетч на Nano. 

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

Не совсем понятно про кнопки 2-16. Они только при выключении режима 2 должны обслуживаться? 

И для теста - откуда брать преремнную нажатия кнопок - из сериал порта?

dim3740
dim3740 аватар
Offline
Зарегистрирован: 25.03.2015

Все кнопки равнозначные. Номера приведены как пример.

Тест не нужен, думаю.... я готов оплатить черновой скетч. И доработать сам. Не думаю, что вы откажетесь от помощи, если в чем -то ошибетесь.

Ну или в чем проблема пару кнопок повесить на любые порты для теста? У меня будет 10 кнопок в реалии, портов хватает. 

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

Могу сделать. Пишите на automation248@hotmail.com Только определитесь - как тестировать-то?

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

аналоговые порты тоже можно использовать как цифровые

dim3740
dim3740 аватар
Offline
Зарегистрирован: 25.03.2015

написал.

Конечно, все- все порты. Там больше ничего не нужно, кроме кнопок и TX в итоге. 

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

dim3740 пишет:

написал.

Конечно, все- все порты. Там больше ничего не нужно, кроме кнопок и TX в итоге. 

Так мы работаем с "Переменная нажатия кнопок - 16 бит." или физическими кнопками подключенными к порту?

Если последнее - то надо ли бороться с дребезгом?

dim3740
dim3740 аватар
Offline
Зарегистрирован: 25.03.2015

Я на почту написал. Да, это физические кнопки с дребезгом.  По числу  портов. Но больше 16 не нужно.

 

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

dim3740 пишет:

Я на почту написал. Да, это физические кнопки с дребезгом.  По числу  портов. Но больше 16 не нужно.

 

Ответил

Kakmyc
Offline
Зарегистрирован: 15.01.2018
perfomaster
Offline
Зарегистрирован: 07.09.2020

perfomaster@mail.ru пишите

Бармалей
Бармалей аватар
Offline
Зарегистрирован: 23.09.2019

barmaley2m@yandex.ru

500 рублей

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Видимо только один я я в ТЗ ничего не понял, то функция должна при отпускании кнопки стартовать, то при длительном нажатии, когнитивный диссонанс однако )))

Kakmyc
Offline
Зарегистрирован: 15.01.2018

ua6em пишет:

Видимо только один я я в ТЗ ничего не понял, то функция должна при отпускании кнопки стартовать, то при длительном нажатии, когнитивный диссонанс однако )))


Ты читал невнимательно. Там тумблер переключает режимы работы кнопок.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Kakmyc пишет:
ua6em пишет:

Видимо только один я я в ТЗ ничего не понял, то функция должна при отпускании кнопки стартовать, то при длительном нажатии, когнитивный диссонанс однако )))

Ты читал невнимательно. Там тумблер переключает режимы работы кнопок.

это так )))

dim3740
dim3740 аватар
Offline
Зарегистрирован: 25.03.2015

Работа выполнена на "отлично" исполнителем  asam.

Спасибо всем. 

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Насчёт asam мы и не сомневались никада. :) 

Думаю, тебе надо оставить о нем отзыв в "зале славы"

http://arduino.ru/forum/ishchu-ispolnitelya/rekomenduyu-kniga-blagodarno...

b707
Offline
Зарегистрирован: 26.05.2017

Есть подобный код с пробросом нажатий кнопок на другую ардуину. Собирается как конструктор под любое число кнопок. Связь по НРФ24, Can или rs485. Режимы кнопок - тактовая, триггер или фикс. Работа в обе стороны. Графический конфигуратор под винду.