Страница 1 из 1

HID клавиатура на attiny85, вопрос по кодам клавиш

Добавлено: Ср апр 30, 2014 14:41:05
kirseb
Добрый день.

в рамках темы http://radiokot.ru/forum/viewtopic.php?f=24&t=102660. возник вопрос, как в hid репорте отдать комбинацию клавиш? сколько гуглил так и не нашел.

в исходном проекте репорт формируется так:

Код: Выделить всё

static void buildReport(void)
{
uchar key = 0; //if not changed by the if-statement below, then send an empty report

    if(reportCount == 0){
        if (buttonState == 1){ // if button is not pressed
		key = 0x30; // key = ]
		} else {
		key = 0x2F;  // key = [
    	}
    }


	reportCount++;
    reportBuffer[0] = 0;    /* no modifiers */
    reportBuffer[1] = key;
}
то что переменной присваивается hid usege id в hex понятно, а как комбинацию клавиш отдать переменной?

Re: HID клавиатура на attiny85, вопрос по кодам клавиш

Добавлено: Ср апр 30, 2014 19:58:00
kalobyte
reportBuffer[0] = 0; /* no modifiers */
тут указаны сканкоды кнопок-модификаторов

2 - код левого шифта
там уже не сканкоды, а биты-модификаторы и они не совпадают с пс\2 клавиатурами
чтобы снять бит, надо послать 0 в модификаторе и 0 в сканкоде, иначе будет заглавными печатать

Re: HID клавиатура на attiny85, вопрос по кодам клавиш

Добавлено: Ср апр 30, 2014 22:56:16
kirseb

Код: Выделить всё

reportBuffer[0] = 2;
reportBuffer[1] = 0х30;
т.е. получаем "left shift+]"?
остальные 6 ячеек только для клавиш?

для того, чтобы передать "left ctrl+left shift+]" нужно так?

Код: Выделить всё

reportBuffer[0] = 3;
reportBuffer[1] = 0х30;

Re: HID клавиатура на attiny85, вопрос по кодам клавиш

Добавлено: Чт май 01, 2014 22:56:39
kalobyte
точно не скажу, но раз там биты стоят, то сумма бит вполне может прокатить

Re: HID клавиатура на attiny85, вопрос по кодам клавиш

Добавлено: Сб май 03, 2014 18:27:43
kirseb
модификаторы работают, также как и их сумма. но стоит только нажать на клавиатуре эти модификаторы, как устройство перестает их отдавать. как будто клавиатура перехватывает их на себя и уже не отдает. если устройство отключить и включить, то все работает нормально пока не нажаты модификаторы на клавиатуре.

Re: HID клавиатура на attiny85, вопрос по кодам клавиш

Добавлено: Сб май 03, 2014 22:39:46
kalobyte
тебе после посылки заглавных букв надо модификатор выставить в 0 и буквы в 0 и все это еще раз послать для сброса
тогда не будет глюка

Re: HID клавиатура на attiny85, вопрос по кодам клавиш

Добавлено: Сб май 03, 2014 23:55:27
kirseb
примерно так?

Код: Выделить всё

static void buildReport(void)
{
uchar key = 0; //if not changed by the if-statement below, then send an empty report
uchar mod = 0;

    if(reportCount == 0){
        if (buttonState == 1){ // if button is not pressed
      key = 0x45; // key = F8
      mod = 1;     // mod = left ctrl  
      } else {
      key = 0;      // key = 0
      mod = 0;     // no modifer
       }
    }


    reportCount++;
    reportBuffer[0] = mod;
    reportBuffer[1] = key;
}

Re: HID клавиатура на attiny85, вопрос по кодам клавиш

Добавлено: Пн май 05, 2014 02:53:00
kalobyte
типа того

Re: HID клавиатура на attiny85, вопрос по кодам клавиш

Добавлено: Пн май 05, 2014 09:34:49
kirseb
спасибо, потестил - все работает.

Re: HID клавиатура на attiny85, вопрос по кодам клавиш

Добавлено: Пн июн 02, 2014 15:58:48
kirseb
возникла еще одна проблема:

при нажатии на кнопку происходят два события, первое - нажатие, второе отпускание. при этом устройство отдает компу каждое из этих двух событий в виде двух одновременных нажатий-отпусканий. в итоге имеем вместо двух событий - четыре. как убрать одновременные события?

Re: HID клавиатура на attiny85, вопрос по кодам клавиш

Добавлено: Ср июн 11, 2014 17:35:39
boingo-00
Сейчас делаю хреновину для регулировки громкости и отображения состояния caps lock. Все есть кроме общения с компом. Как заставить комп понимать все

Re: HID клавиатура на attiny85, вопрос по кодам клавиш

Добавлено: Чт июн 12, 2014 01:20:26
kirseb
регулятор громкости на энкодере: http://obruboff.ru/usb-volume-control-ver-2/
как общаться с девайсом: http://we.easyelectronics.ru/electro-an ... v-usb.html

Re: HID клавиатура на attiny85, вопрос по кодам клавиш

Добавлено: Чт июн 12, 2014 17:38:50
boingo-00
Спасибо :)