07.09.2017, 02:33
|
|
Модератор
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,246
Сказал спасибо: 11,165
Сказали Спасибо 3,854 раз(а) в 2,925 сообщении(ях)
|
Re: Оцените алгоритм опроса матричной клавы
omercury, так она к двум диодам .
Если таки вернутся к строкам и столбцам, то все нормально получается.
При появлении нуля в столбце - нули появляются в строках с нажатыми кнопками.
И позиция нулей даёт нажатые кнопки.
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
Последний раз редактировалось mike-y-k; 07.09.2017 в 02:49.
|
|
|
|
07.09.2017, 02:48
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: Оцените алгоритм опроса матричной клавы
Сообщение от mike-y-k
|
она к двум диодам .
|
К трём.
...с приставкой "и".
Вот так с лёгкой подачи обожаемого здесь мишутки алгоритм опроса усложнился на 3 порядка...
|
|
|
|
07.09.2017, 03:12
|
|
Модератор
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,246
Сказал спасибо: 11,165
Сказали Спасибо 3,854 раз(а) в 2,925 сообщении(ях)
|
Re: Оцените алгоритм опроса матричной клавы
Похоже сегодня перегрузка - утро вечера мудрёнее.
Надо на свежую голову посмотреть будет…
Спать…
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
|
|
|
|
07.09.2017, 03:31
|
|
Вид на жительство
Регистрация: 10.06.2007
Сообщений: 429
Сказал спасибо: 34
Сказали Спасибо 51 раз(а) в 47 сообщении(ях)
|
Re: Оцените алгоритм опроса матричной клавы
omercury, вот так сразу и надо было - с хоть каким-то аргументом. Хорошо, уже начали думать, надеюсь склонность к подтверждению своей точки зрения тут уже не сильно помешает. А то я хотел уже спросить: проверяли это на практике или хоть в симуляторе? И почему так уверены, что в шаге 1 будет именно так? Приложу картинку, раз уж сделал. Ноль тут выставлен только на PD4 (выход "1").
Оказывается такая клавиатура работает не совсем так, как хотелось бы. Теперь можно подумать - как это исправить (если всё же необходимо исправить, конечно, а это далеко не всегда требуется).
Да, это не очевидно, так как представить себе работу всей клавиатуры сразу, а не отдельного вырванного столбца и строк, трудновато. Не знаю почему я тут заподозрил неладное(может «эксперимент 2-4-6» так впечатлил...), но быстро нашёл две разные комбинации которые при любом сканировании дают один результат. И проще диода на каждую кнопку ничего не придумал (если нужны именно все комбинации).
Сейчас ещё и статейку загуглил http://electe.blogspot.ru/2012/08/blog-post.html
Вот в этом и проблема дешёвых комповых клавиатур: больше трёх кнопок иногда не нажимается (правда есть ещё ограничения HID в шесть клавиш, но их можно обойти).
PS: это ещё что... в "железных" вопросах (физических - типа куда бегут электроны) ещё и не такое бывает... и появляются выкачивальщики энергии эфира при помощи простого трансформатора...
|
|
|
|
07.09.2017, 11:09
|
|
Заблокирован
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
|
Re: Оцените алгоритм опроса матричной клавы
Сообщение от H4LF
|
Оказывается такая клавиатура работает не совсем так, как хотелось бы. Теперь можно подумать - как это исправить (если всё же необходимо исправить, конечно, а это далеко не всегда требуется).
Да, это не очевидно, так как представить себе работу всей клавиатуры сразу, а не отдельного вырванного столбца и строк, трудновато. Не знаю почему я тут заподозрил неладное(может «эксперимент 2-4-6» так впечатлил...), но быстро нашёл две разные комбинации которые при любом сканировании дают один результат. И проще диода на каждую кнопку ничего не придумал (если нужны именно все комбинации).
Сейчас ещё и статейку загуглил
|
Не каждый мозг способен такое переварить.
зы. Тема обещает быть долгой и безрезультатной.
|
|
|
|
07.09.2017, 13:06
|
|
Гражданин KAZUS.RU
Регистрация: 15.08.2010
Адрес: Днепр
Сообщений: 842
Сказал спасибо: 74
Сказали Спасибо 199 раз(а) в 174 сообщении(ях)
|
Re: Оцените алгоритм опроса матричной клавы
Сообщение от mike-y-k
|
Если таки вернутся к строкам и столбцам, то все нормально получается.
|
А что будет, если прошел опрос колонок по строке В, а потом нажали кнопки 1, 4, 6? По логике, столбцы в строке С будут теперь сканироваться раньше, чем в В. И вместо нажатой кнопки 6 - определится 3.
На первом скришоте закончено сканирование столбцов в строке В.
На втором нажимаем кнопки.
На третьем результат.
А получается то, что строки В и С закорачиваются через кнопки 1 и 4, а ноль выставлен на строку С и через кнопку 6 выходит на третью колонку. А третья колонка с выставленным нулем в строке С должна давать 3.
Последний раз редактировалось МВА; 07.09.2017 в 13:10.
|
|
|
|
07.09.2017, 13:32
|
|
Заблокирован
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
|
Re: Оцените алгоритм опроса матричной клавы
Сообщение от МВА
|
А что будет, если прошел опрос колонок по строке В, а потом нажали кнопки 1, 4, 6? По логике, столбцы в строке С будут теперь сканироваться раньше, чем в В. И вместо нажатой кнопки 6 - определится 3.
|
Надо сразу рассматривать варианты типа...
"По контакту лез паук, я нажал и вышел глюк!"(с)
или
"Молоко и кока-кола для контактиков приколы!"(с)
ну или
"Кондёр повесил на мембрану, прощай навеки амальгама!"(с)
или заветное
"Кондёр повесил на геркон, почему-то слипся он!"(с).
Последний раз редактировалось STM32F0; 07.09.2017 в 13:34.
|
|
|
|
07.09.2017, 20:24
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.11.2010
Адрес: г. Дзержинск Нижегородская обл.
Сообщений: 1,672
Сказал спасибо: 130
Сказали Спасибо 1,074 раз(а) в 517 сообщении(ях)
|
Re: Оцените алгоритм опроса матричной клавы
Резюме:
1. Обычно не требуется контроля нажатия более одной кнопки.
2. Контроль множественных нажатий на матричной клавиатуре возможен только при развязке кнопок диодами.
А можно контролировать выходные линии входами на предмет "шунтирования" нажатыми кнопками линий опроса. Но тогда идея о экономии выводов не катит.
Кто скажет? Возможно у STM32 одновременно вывод использовать как "выход - ОК" и читать его состояние из IDR? Т.е. контролировать состояние линии, которая подцеплена к выходу ОК?
|
|
|
|
07.09.2017, 20:42
|
|
Вид на жительство
Регистрация: 10.06.2007
Сообщений: 429
Сказал спасибо: 34
Сказали Спасибо 51 раз(а) в 47 сообщении(ях)
|
Re: Оцените алгоритм опроса матричной клавы
Сообщение от DanilinSA
|
А можно контролировать выходные линии входами на предмет "шунтирования" нажатыми кнопками линий опроса. Но тогда идея о экономии выводов не катит.
|
если OD, то считывать, что на выходах, можно и так, без лишних выводов, но какой смысл? Определить какая именно из четырёх кнопок не нажата(или все 4 действительно нажаты) - всё равно невозможно. Если только фильтрация таких состояний будет проще...
|
|
|
|
07.09.2017, 21:28
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.11.2010
Адрес: г. Дзержинск Нижегородская обл.
Сообщений: 1,672
Сказал спасибо: 130
Сказали Спасибо 1,074 раз(а) в 517 сообщении(ях)
|
Re: Оцените алгоритм опроса матричной клавы
Да, как защита от ложной команды когда человек всю пятерню сунул в кнопки.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 03:49.
|
|