Teensy как клавиатура: ошибка: «keyboard_leds» не был объявлен в этой области

Я новичок в Teensy и пытаюсь написать программу, позволяющую ей работать как клавиатура. Чтобы сделать мою программу более полезной, я бы хотел, чтобы она не пыталась реагировать на какие-либо входные данные, пока не будут установлены ее драйверы. Я видел на GitHub, что способ сделать это (при условии, что пользователь не нажмет его сам) состоит в том, чтобы дать программе указание нажимать заглавные буквы, пока не загорится светодиод. Функция, которую я написал, выглядит так:

void waitForInstall(){
    boolean currCaps = keyboard_leds;
    while ((currCaps & 2) == (keyboard_leds & 2)){
        delay(200);
        Keyboard.set_key1(KEY_CAPS_LOCK);
        Keyboard.send_now();
    }
}

Когда я пытаюсь скомпилировать это, Arduino IDE сообщает мне, что 'keyboard_leds' was not declared in this scope. Я уверен, что совершил очень большую ошибку, но не мог бы кто-нибудь пошутить надо мной и подтолкнуть меня в правильном направлении? Спасибо!


person J. Doe    schedule 19.10.2015    source источник
comment
Есть ли заголовок, который вам нужно включить?   -  person Notlikethat    schedule 20.10.2015
comment
Вы включили заголовок usb_keyboard.h?   -  person Sergio Internicola    schedule 20.10.2015


Ответы (2)


keyboard_leds — это переменная, добавленная в usb_private.h. Это не включается по умолчанию, и его явное включение вызывало повторяющиеся ошибки метода. Я закончил добавление этого

#include "usb_private.h"

в аппаратное обеспечение/teensy/avr/cores/usb_hid/usb_hid.h

И это помогло.

person Isaac B    schedule 25.01.2017

Вы должны выбрать, какой профиль USB вы хотите в Инструменты => Тип USB

Он должен включать «Клавиатура», чтобы определить, что клавиатура_светодиоды доступны.

Вероятно, вам нужен тип USB «Последовательный порт + клавиатура + мышь + джойстик».

person Bruce Barnett    schedule 22.08.2018