Как рассчитывается ASCII код одновременно нажатых двух клавиш на клавиатуре?

lee
Offline
Зарегистрирован: 13.03.2014

Хочу добиться понимания arduino, подключенной к компьютеру, двух одновременно нажатых клавиш на клавиатуре компьютера. С обработкой отдельных клавиш и фраз все понятно.

Или комп генерит некую последовательность ASCII кодов в этом случае?

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Какой комп? Коды клавиш выдает клавиатура. Одновременно нажать не получится. Какая то будет раньше. Соответственно последовательность, сначаоа первая, потом вторая.

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

В гугле забанили? Например здесь, https://ru.m.wikipedia.org/wiki/Скан-код

lee
Offline
Зарегистрирован: 13.03.2014

Нет не забанили. Коды каждой клавиши найти не проблема. Мой вопрос в другом, см. первый пост.

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Ок, тогда ждите телепатов, которые поймут как подключена Ардуина к компу, какая Ардуина, каким образом коды попадают в Арудину и т.п.

Вот еще выдержка из материала, на который я давал ссылку:

Внутренний контроллер клавиатуры способен определить факты нажатия и отпускания клавиш, при этом можно нажимать очередную клавишу, даже удерживая несколько ранее нажатых. При нажатии клавиши клавиатура передает идентифицирующий ее скан-код. При удержании клавиши в нажатом положении через некоторое время клавиатура начинает автоповтор передачи скан-кода нажатия этой клавиши.

Как Вам уже сказали, даже если Вы нажмете две клавиши одновременно, коды будет выданы последовательно сначала одной кнопки, потом другой.

 

lee
Offline
Зарегистрирован: 13.03.2014

kisoft пишет:

Вот еще выдержка из материала, на который я давал ссылку:

Внутренний контроллер клавиатуры способен определить факты нажатия и отпускания клавиш, при этом можно нажимать очередную клавишу, даже удерживая несколько ранее нажатых. При нажатии клавиши клавиатура передает идентифицирующий ее скан-код. При удержании клавиши в нажатом положении через некоторое время клавиатура начинает автоповтор передачи скан-кода нажатия этой клавиши.

Как Вам уже сказали, даже если Вы нажмете две клавиши одновременно, коды будет выданы последовательно сначала одной кнопки, потом другой.

Спасибо. Попробую последовательно код нажатых клавиш в скетч включить. Но как контроллер клавиатуры отличит поочередное нажатие клавиш (одну нажали отпустили и сразу же нажали другую) от одновременного последовательного нажатия? Будет ли при этом отличаться выдаваемый код? У меня Ардуино UNO подключена стандартно через USB(COM) штатным шнурком. Задача выполнять действие Ардуиной при нажатой и удерживаемой клавише на клавиатуре компьютера, и если нажать при нажатой первой другую клавишу, вносить изменения в выполняемые действия. Извиняюсь за неполную информацию ранее.

PS Подскажите, есть ли софтовый способ посмотреть код нажатых комбинаций клавиш? То есть что именно будет выдано в COM. Возможно это снимет все вопросы.

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Давайте посмотрим на факты:
1. Контроллер выдаёт код нажатия клавиши и код отпускания клавиши. Теплее?
2. Значит, чтобы понять, что нажаты две клавиши, то нужно ждать нажатия одной клавиши, затем нажатия второй клавиши. Это ровно то, что нужно. Главное, чтобы до нажатия второй клавиши не пришёл код отпускания первой клавиши.
3. Сколько бы клавиш не было нажато, коды всегда будут одни и те же. Это Вы упорно не желаете понять. Я давал ссылку на скан коды и других Вы не увидите, даже если сядете на клавиатуру.
Найдите в гугле прогу, которая выдаёт скан коды на экран и все увидите воочию. Попробуйте пока без Ардуины.

lee
Offline
Зарегистрирован: 13.03.2014

Благодарю за объяснения, буду разбираться. Про код отпускания клавиши вообще впервые узнал.

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

lee пишет:

Про код отпускания клавиши вообще впервые узнал.

Вообще-то в сообщении #2 Вам дали ссылку. Там об этом написано в тексте и показано в таблице, надо было лишь внимательно прочитать...