реклама на сайте
подробности

 
 
6 страниц V  < 1 2 3 4 5 > »   
Reply to this topicStart new topic
> Опрос клавиатуры на С, Как написать компактный и "красивый" код?
k155la3
сообщение Jun 24 2018, 09:57
Сообщение #31


Профессионал
*****

Группа: Свой
Сообщений: 1 123
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848



Цитата(iliusmaster @ Jun 24 2018, 12:30) *
У музыкантов нужно точно отслеживать длительность нажатия, с разрешением не хуже 10 мс.

Это специфика. Там еще и амплитуду-форму сигнала нажатия клавиши надо отслеживать. Задача намного сложенее, чем HMI для оператора.
Go to the top of the page
 
+Quote Post
Forger
сообщение Jun 24 2018, 10:03
Сообщение #32


Профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(Herz @ Jun 24 2018, 12:50) *
Греть резисторы подтяжки таким током долго - не всегда разумно.

Например, в педали тормоза обычных рядовых машин стоит концевик-кнопка, а роль резисторов подтяжки которой играют лампы стоп-сигналов - "одним выстрелом двух зайцев"



--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
iliusmaster
сообщение Jun 24 2018, 11:11
Сообщение #33


Частый гость
**

Группа: Участник
Сообщений: 181
Регистрация: 15-04-17
Пользователь №: 96 556



Ну раз музыканты это специфика, то вот еще один пример.
Есть у меня самодеятельный ЦАП с пультом управления. Пульт с многими кнопками, а питается для уменьшения габаритов от батареи типоразмера 2320. Так вот если мне каждые 100мс опрашивать кнопки, то батарейки придется часто менять. Можно даже придумать хитрый алгоритм, который будет увеличивать интервал между опросами, если длительное время отсутствует нажатие, но тогда я буду беситься от долгого времени отклика при первом нажатии.
Диоды же, повешенные на прерывание, позволяют МК спать все время, пока не произошло нажатия. Время работы от батареи значительно вырастает....
Эти примеры я для чего привожу, что каждой задаче - свое решение. И вопрос как лучше опрашивать клавиатуру на Си, требует уточнения, какую клавиатуру и в каких условиях.
Go to the top of the page
 
+Quote Post
Forger
сообщение Jun 24 2018, 11:21
Сообщение #34


Профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(iliusmaster @ Jun 24 2018, 14:11) *
И вопрос как лучше опрашивать клавиатуру на Си, требует уточнения, какую клавиатуру и в каких условиях.

Логично ))


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
k155la3
сообщение Jun 24 2018, 13:07
Сообщение #35


Профессионал
*****

Группа: Свой
Сообщений: 1 123
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848



Цитата(iliusmaster @ Jun 24 2018, 14:11) *
Ну раз музыканты это специфика, . . . .

Мой коллега по работе пламенный сторонник "прерывательной" клавиатуры. Да, если нужен глубокий LPM и в то же время - быстрая реакции на
нажатие - прерывания вне конкуренции.
Go to the top of the page
 
+Quote Post
Make_Pic
сообщение Jun 25 2018, 02:06
Сообщение #36


Знающий
****

Группа: Свой
Сообщений: 779
Регистрация: 9-10-04
Из: Россия, Пермь
Пользователь №: 828



Цитата(k155la3 @ Jun 24 2018, 17:07) *
Мой коллега по работе пламенный сторонник "прерывательной" клавиатуры. Да, если нужен глубокий LPM и в то же время - быстрая реакции на
нажатие - прерывания вне конкуренции.

Тема ушла куда то "налево" sad.gif А хотелось просто увидеть код хорошего простого решения по клавиатуре...
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Jun 25 2018, 08:49
Сообщение #37


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(Make_Pic @ Jun 25 2018, 05:06) *
Тема ушла куда то "налево" sad.gif А хотелось просто увидеть код хорошего простого решения по клавиатуре...

Так что за клавиатура?
Код сканирования вот такой клавиатуры устроит ?
Go to the top of the page
 
+Quote Post
k155la3
сообщение Jun 25 2018, 09:09
Сообщение #38


Профессионал
*****

Группа: Свой
Сообщений: 1 123
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848



Цитата(Make_Pic @ Jun 25 2018, 05:06) *
Тема ушла куда то "налево" sad.gif А хотелось просто увидеть код хорошего простого решения по клавиатуре...
Нет, тема идет полностью так, как Вы ее задали в первом посте.
Цитата
Опрос клавиатуры на С -> Как написать компактный и "красивый" код?
Вот Вам и рекомендуют не сам код, а как его писать "красиво", те выбрать правильный алгоритм. Как его перенести на код - это уже дело техники.
т.е. Вы хотите увидить готовый код - драйвер клавиатуры ? Хотя это несколко противоречит цитате выше sm.gif
(я свой драйвер матрицы 4x4 выложу, позднее).
Вот реализация на С от Ti Low power keyb
PDF SLAA773
Go to the top of the page
 
+Quote Post
Herz
сообщение Jun 25 2018, 10:02
Сообщение #39


Гуру
******

Группа: Модераторы
Сообщений: 10 983
Регистрация: 23-11-05
Пользователь №: 11 287



Цитата(Forger @ Jun 24 2018, 13:03) *
Например, в педали тормоза обычных рядовых машин стоит концевик-кнопка, а роль резисторов подтяжки которой играют лампы стоп-сигналов - "одним выстрелом двух зайцев"

А зачем в "рядовых" машинах подтяжка с кнопки педали тормоза?
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Jun 25 2018, 10:35
Сообщение #40


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(k155la3 @ Jun 25 2018, 12:09) *
Вот реализация на С от Ti

Тут надо сразу предупредить, что такая клавиатура надежно дает определить только одно нажатие.
Если речь идет о клавиатуре скажем PC где надо обрабатывать несколько нажатий одновременно, то такая клавиатура не годится.
Надо добавить диоды как минимум.
А алгоритм соответственно не адаптирован к условиям сильных помех.
Go to the top of the page
 
+Quote Post
Forger
сообщение Jun 25 2018, 12:13
Сообщение #41


Профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(Herz @ Jun 25 2018, 13:02) *
А зачем в "рядовых" машинах подтяжка с кнопки педали тормоза?

Под рядовыми я понимаю бюджетные ширпотребные авто не самых "бородатых" годов (скажем, до 10лет), где все же производится хотя бы какой-нить целостность стоп-ламп, тем более, если авто с коробкой-автомат.
Но это уже офф.
Цитата(AlexandrY @ Jun 25 2018, 13:35) *
Тут надо сразу предупредить, что такая клавиатура надежно дает определить только одно нажатие.
Если речь идет о клавиатуре скажем PC где надо обрабатывать несколько нажатий одновременно, то такая клавиатура не годится.
Надо добавить диоды как минимум.

Вы верны своей "традиции" - очередной "пук в лужу" biggrin.gif
Любая матричная клавиатура позволяет однозначно обрабатывать условия, когда даже ВСЕ кнопки нажаты и уж тем более в любом сочетании любого числа одновременно нажатых кнопок.
Никакие диоды тут не нужны. Достаточно лишь ряда резисторов подтяжки на столбцы или строки.


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Jun 25 2018, 12:24
Сообщение #42


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(Forger @ Jun 25 2018, 15:13) *
Вы верны своей "традиции" - очередной "пук в лужу" biggrin.gif

За это вам предупреждение. Второго не будет.

Цитата(Forger @ Jun 25 2018, 15:13) *
Любая матричная клавиатура позволяет однозначно обрабатывать условия, когда даже ВСЕ кнопки нажаты и уж тем более в любом сочетании любого числа одновременно нажатых кнопок.
Никакие диоды тут не нужны. Достаточно лишь ряда резисторов подтяжки на столбцы или строки.

А над этим предлагаю вам подумать еще раз.
На матрице без диодов при одновременном нажатии в определенной конфигурации возможны фантомные определения нажатий.
Go to the top of the page
 
+Quote Post
Forger
сообщение Jun 25 2018, 12:32
Сообщение #43


Профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(AlexandrY @ Jun 25 2018, 15:24) *
А над этим предлагаю вам подумать еще раз.

Согласен, поторопился с выводами. Без диодов в таком случае не обойтись.
Однако, в случае с клавиатурой, у которой сопротивление нажатых кнопок относительно большое (пленочные клавиатуры), это решаемо без диодов.
Но усложняется алгоритм опроса - нужен импульсный (ШИМ) или даже аналоговый способ измерений.
Судя по всему именно такой и применяется в клавиатурах ПК, для выявления подобных "коллизий".


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
ArtemKAD
сообщение Jun 25 2018, 22:31
Сообщение #44


Профессионал
*****

Группа: Свой
Сообщений: 1 508
Регистрация: 26-06-06
Из: Киев
Пользователь №: 18 364



Цитата(Forger @ Jun 24 2018, 11:10) *
Извращение как раз в противоположном - ставить 5 Вт резистор подтяжки для подобных кнопок. А если кнопок много, то ...
К вашему сведению, я не придумал ничего нового - в данном случае также "традиционно" позаимствовал идею, ...

Конечно ничего нового. Я сам первый раз в серийном изделии использовал импульсную подтяжку низкоомным резистором в году эдак 2002. Вот только использовать её не для концевиков, а для клавиатуры как по мне это уже оверкилл...
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Jun 26 2018, 05:17
Сообщение #45


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(ArtemKAD @ Jun 26 2018, 01:31) *
Конечно ничего нового. Я сам первый раз в серийном изделии использовал импульсную подтяжку низкоомным резистором в году эдак 2002. Вот только использовать её не для концевиков, а для клавиатуры как по мне это уже оверкилл...

Что за блажь использовать низкоомную подтяжку для механических контактов.
Кто этот миф распускает, интересно?
Т.е. интересует первоисточник.
Go to the top of the page
 
+Quote Post

6 страниц V  < 1 2 3 4 5 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th April 2024 - 21:25
Рейтинг@Mail.ru


Страница сгенерированна за 0.01506 секунд с 7
ELECTRONIX ©2004-2016