Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


Закрытая тема
Опции темы
Непрочитано 31.08.2017, 19:59   #61
DanilinSA
Почётный гражданин KAZUS.RU
 
Регистрация: 25.11.2010
Адрес: г. Дзержинск Нижегородская обл.
Сообщений: 1,727
Сказал спасибо: 130
Сказали Спасибо 1,111 раз(а) в 530 сообщении(ях)
DanilinSA на пути к лучшему
По умолчанию Re: Оцените алгоритм опроса матричной клавы

На относительно медленных PIC это прокатывает. Возможно частично прокатывает на "младших" STM32. Но "старшие" чипы уже слишком производительные для этого. Опрос происходит слишком быстро. Линии кнопок не успевают зарядится. А в этот момент идет опрос.

Сейчас такая задача практически не встречается. Это из времен слабеньких чипов с малым количеством ног.
Как я поступал:
1) Нужно было опросить 16 кнопок. Поставил 2 штуки 74HC165 каскадом на SPI шину. Схемотехника передрана из 4x4 Key click . Отладка ... все заработало сразу.
2) Нужно было опросить 10 кнопок. На STM32F405. Тупо развел по принципу "одна нога - одна кнопка". Благо на STM32 ноги экономить не приходиться. Этого добра всегда в избытке. Ну или взять более многоногий чип. Тем более по цене почти одинаково.
Реклама:
DanilinSA вне форума  
Непрочитано 31.08.2017, 20:26   #62
supercelt
Прописка
 
Регистрация: 29.03.2007
Сообщений: 185
Сказал спасибо: 11
Сказали Спасибо 1 раз в 1 сообщении
supercelt на пути к лучшему
По умолчанию Re: Оцените алгоритм опроса матричной клавы

Сообщение от DanilinSA Посмотреть сообщение
Нужно было опросить 10 кнопок. На STM32F405. Тупо развел по принципу "одна нога - одна кнопка". Благо на STM32 ноги экономить не приходиться. Этого добра всегда в избытке.
Мда, неприлично просто))) но количество ног все-таки иногда решает)
supercelt вне форума  
Непрочитано 31.08.2017, 20:39   #63
mike-y-k
Модератор
 
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,258
Сказал спасибо: 11,170
Сказали Спасибо 3,859 раз(а) в 2,929 сообщении(ях)
mike-y-k на пути к лучшему
По умолчанию Re: Оцените алгоритм опроса матричной клавы

supercelt
Указанное таки промышленное решение.
В серии плюс один корпус ничего не решает.
А вот отказоустойчивость здесь вопрос сильно спорный.
Ваш алгоритм совсем не проходил тестирование и проблемы в будущем весьма предсказуемы - наводки, изменение ёмкости,…
И на тему алгоритма - их можно поискать в сети, и более проверенных, и более универсальных,… не стоит изобретать миллионный велосипед для таких простых вещей и решений. Даже тут в теме варианты были.
А у меня этот вариант теперь будет везде, где нужно работать без заморочек с системой команд и программированием. Таки стандартный интерфейс несколько универсальнее .
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
mike-y-k вне форума  
Непрочитано 31.08.2017, 20:57   #64
6ap6oc
Прописка
 
Регистрация: 02.03.2010
Сообщений: 139
Сказал спасибо: 12
Сказали Спасибо 49 раз(а) в 26 сообщении(ях)
6ap6oc на пути к лучшему
По умолчанию Re: Оцените алгоритм опроса матричной клавы

Сообщение от supercelt Посмотреть сообщение
А можно сканить и устанавливать ряды прямо в прерывании? или лучше давать флаг и делать действо по нему уже в майне?
Пожалуй, даже нужно считывать порт строк а затем устанавливать новый столбец именно в прерывании.
Прерывание происходит в гарантированные вами установленные моменты времени, регулярно, обязательно. Что бы вы не делали в остальное время, считали что-то огромное или спали, или в цикле ожидания висели, кнопки будут опрошены.

Я , кажется, понял, почему вы хотите все сразу делать - что бы считывать несколько кнопок, их сочетания. Я это делаю совсем просто - считаю время удержания каждой кнопки (сколько тактов при опросе она оказалась нажатой). В основной программе у меня проверяется не только факт нажатия но и спокойно могу это время удержания использовать, скажем, для сдвига курсора, там и обнуляю счетчик . Если нажаты две (вроде как комбинация) , оба счетчика увеличиваются. Если нажаты все - все счетчики увеличиваются. Этого вполне достаточно, чтобы реагировать в программе адекватно. Часть обработки комбинаций можно и прерывание засунуть, если не очень сложный и длинный алгоритм.

Последний раз редактировалось 6ap6oc; 31.08.2017 в 21:05.
6ap6oc вне форума  
Непрочитано 31.08.2017, 21:02   #65
supercelt
Прописка
 
Регистрация: 29.03.2007
Сообщений: 185
Сказал спасибо: 11
Сказали Спасибо 1 раз в 1 сообщении
supercelt на пути к лучшему
По умолчанию Re: Оцените алгоритм опроса матричной клавы

Хорошо, спасибо. А тогда ещё такой вопрос. Сколько минимум надо сделать задержку между установкой строки и началом скана столбцов? Я помню что вы говорили в одном вызове ф-ии ставить строку, а сканить уже во втором вызове. Так а сколько по времени надо минимум?
supercelt вне форума  
Непрочитано 31.08.2017, 21:35   #66
DanilinSA
Почётный гражданин KAZUS.RU
 
Регистрация: 25.11.2010
Адрес: г. Дзержинск Нижегородская обл.
Сообщений: 1,727
Сказал спасибо: 130
Сказали Спасибо 1,111 раз(а) в 530 сообщении(ях)
DanilinSA на пути к лучшему
По умолчанию Re: Оцените алгоритм опроса матричной клавы

Сообщение от supercelt Посмотреть сообщение
Так а сколько по времени надо минимум?
Типичная кнопка (сферическая в ваккуме) при замыкании обычно дает дребезг в течении около 8-10 мс. А потому типичная задержка в диапазоне от 50 до 200 мс.
DanilinSA вне форума  
Непрочитано 31.08.2017, 21:50   #67
supercelt
Прописка
 
Регистрация: 29.03.2007
Сообщений: 185
Сказал спасибо: 11
Сказали Спасибо 1 раз в 1 сообщении
supercelt на пути к лучшему
По умолчанию Re: Оцените алгоритм опроса матричной клавы

Сообщение от DanilinSA Посмотреть сообщение
Типичная кнопка (сферическая в ваккуме) при замыкании обычно дает дребезг в течении около 8-10 мс. А потому типичная задержка в диапазоне от 50 до 200 мс.
Не, вы не поняли. Время между установкой на пинах ряда 1 и началом сканирования столбов. Если как вы пишите 200мс. То получается так:
Установили 1 на 1 пине ряда. Выдерживаем 200мс. Сканим. Устанавливаем 2 пин ряда, 200мс, сканим, ставим 3 пин, 200мс, сканим, ставим 4 пин, 200мс, сканим. Итого времени на скан всей клавиатуры 800мс, это почти секунда!
supercelt вне форума  
Непрочитано 31.08.2017, 22:45   #68
DanilinSA
Почётный гражданин KAZUS.RU
 
Регистрация: 25.11.2010
Адрес: г. Дзержинск Нижегородская обл.
Сообщений: 1,727
Сказал спасибо: 130
Сказали Спасибо 1,111 раз(а) в 530 сообщении(ях)
DanilinSA на пути к лучшему
По умолчанию Re: Оцените алгоритм опроса матричной клавы

Уговорили. Берите 20 мс. Или 10-15. 200 - это в Вашем случае явный перебор.
DanilinSA вне форума  
Непрочитано 31.08.2017, 23:26   #69
supercelt
Прописка
 
Регистрация: 29.03.2007
Сообщений: 185
Сказал спасибо: 11
Сказали Спасибо 1 раз в 1 сообщении
supercelt на пути к лучшему
По умолчанию Re: Оцените алгоритм опроса матричной клавы

Сообщение от mike-y-k Посмотреть сообщение
supercelt, за время обсуждения успел затарится, немного разобраться с программированием, сделать макет 4x4 и 4x8 клавиатур (см пост). Работает, и как плюс - можно воткнуть куда угодно. Теперь можно не париться с этим вопросом и просто делать эти клавиатуры хоть на потоке вёдрами .
Где вы достали эту микруху, если ее даже на складе у этого магазина нет?
Плату под нее сами разводили?
supercelt вне форума  
Непрочитано 01.09.2017, 09:16   #70
dgrishin
Почётный гражданин KAZUS.RU
 
Регистрация: 12.02.2013
Сообщений: 1,047
Сказал спасибо: 43
Сказали Спасибо 273 раз(а) в 214 сообщении(ях)
dgrishin на пути к лучшему
По умолчанию Re: Оцените алгоритм опроса матричной клавы

Сообщение от supercelt Посмотреть сообщение
Где вы достали эту микруху, если ее даже на складе у этого магазина нет?
Плату под нее сами разводили?
Ещё есть китайское чудо - TM1650 - стоит 3 копейки. Где то на этом форуме есть ссылка на английский пдф для неё. Как она работает с клавиатурой не проверял (пользовал только как драйвер индикатора)
dgrishin вне форума  
Закрытая тема

Закладки


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 18:44.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot