Компиляция двух заголовков в скетче
- Войдите на сайт для отправки комментариев
Пнд, 07/05/2018 - 15:18
Здравствуйте!
Задача стоит написать скетч, который по команде поступающей через usb будет производить действия с мышью/клавиатурой.
У меня Digispark USB-A на базе Attiny85. Насколько я понял у этого микроконтроллера нет функционала работать через COM порт. Поэтому для взаимодействия с Usb и клавиатурой пытаюсь использовать DigiUSB.h и DigiKeyboard.h соответственно.
По отдельности подключение заголовков идет отлично и все компилируется, но когда пытаюсь вместе выдает ошибку копиляции.
Насколько я понимаю это происходит из-за того, что DigiKeyboard имеет свои механизмы взаимодействия с usb и конфиг для констант в DigiKeyboard и DigiUSB разный.
#include <DigiUSB.h> #include <DigiKeyboard.h> void setup(){ } void loop(){ }
Ошибка компиляции:
C:\Users\Stochfard\Documents\ArduinoData\packages\digistump\hardware\avr\1.6.7\libraries\DigisparkMouse/DigiKeyboard.h:58:34: error: too many initializers for 'const char [22]'
0xc0 };
Подскажите в какую сторону смотреть для решения поставляеной задачи ?
А они не работают вместе на Attiny85
выбирайте:
#include <DigiUSB.h>
или
#include <DigiKeyboard.h>
Потому что там памяти мало чтобы вместить оба и они частично дублируют друг друга...
Если надо все вместе - то берите платы c Atmega32u4 чипом
По отдельности пишет 16% и 9% памяти :)
Насколько я понимаю констунта USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH, которую DigiKeyboard использует для длинны массива, переопределяется где-то в DigiUSB.
Насчет дублирования: DigiKeyboard я так понимаю отпределяет только методый отправки данных через USB с платы, а на прием не работает. Возможно как-то можно написать методы для приема данных на основе usbdrv.h
Методы отправки и дескриптор. Вобщем у вас вряд ли ума хватит их обьединить(переписать дескриптор), а мне лень...
Для Atmega32u4 USB-HID дескриптор содержит и клавиатуру и мышь. Если сможете понять - то он вам поможет.