Отправка скан-кода клавиш

Наф-Наф
Offline
Зарегистрирован: 24.03.2020

Всем здравия!

Есть ATmega32U4 подключается по microusb и определяется как USB HID клавиатура.

Код пишу в "Arduino IDE".

Как программно отправить скан-код? 

P.S. Пробовал библиотеку "Keyboard", но она поддерживает только печатные символы.

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

Наф-Наф пишет:

Как программно отправить скан-код? 

P.S. Пробовал библиотеку "Keyboard", но она поддерживает только печатные символы.

Передайте n-битное число.

Наф-Наф
Offline
Зарегистрирован: 24.03.2020

Как например скан-код "E0,20" перевести в двоичный код и передать, как нажатие клавиши с клавиатуры?

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

Наф-Наф пишет:

Как например скан-код "E0,20" перевести в двоичный код

А запись E0 вам ничего не напоминает?

Наф-Наф
Offline
Зарегистрирован: 24.03.2020

Перевожу из шестнадцатеричного "E020" в двоичное "1110000000100000".

#include <Keyboard.h>

void setup() {
  Keyboard.begin();
}

void loop() {
  delay(5000);
  Keyboard.press(11100000);
  Keyboard.press(00100000);
  Keyboard.releaseAll();
}

 

Если раздельно число передавать "11100000" и "00100000" то выводит "`", а если не разделять, то выводит "u".

К тому же скан-код с запятой "E0,20". Как её передать? 

Да и как я уже говорил, данная библиотека не работает со скан-кодами. Как тогда их передавать?

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

Дорогой поросенок, вам лет-то сколько? Такие вопросы в три года задают...

Запятая просто для разделения значений. ее передавать не надо. Бинарные числа пишутся не так.

Насчет того, что "данная библиотека не работает со скан-кодами" - точно не скажу, но судя по тому. что вы явно вообще не в теме - вполне может быть. что это не "библиотека не работет", а просто кое-кто не умеет

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

Наф-Наф пишет:

Как например скан-код "E0,20" перевести в двоичный код и передать, как нажатие клавиши с клавиатуры?

а зачем переводить, надо просто правильно его записать 0xE0 и 0x20.

ну хотя если очень хочется можно перевести, но опять же правильно записать 0b11100000 и 0b00100000