Компиляция двух заголовков в скетче

Stochfard
Offline
Зарегистрирован: 07.05.2018

Здравствуйте! 

Задача стоит написать скетч, который по команде поступающей через 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                           };
 
Подскажите в какую сторону смотреть для решения поставляеной задачи ? 
NeiroN
NeiroN аватар
Offline
Зарегистрирован: 15.06.2013

А они не работают вместе на Attiny85 

выбирайте:

#include <DigiUSB.h>

или

#include <DigiKeyboard.h>

Потому что там памяти мало чтобы вместить оба и они частично дублируют друг друга...

Если надо все вместе -  то берите платы c Atmega32u4 чипом

Stochfard
Offline
Зарегистрирован: 07.05.2018

По отдельности пишет 16% и 9% памяти :) 

Насколько я понимаю констунта USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH, которую DigiKeyboard использует для длинны массива, переопределяется где-то в DigiUSB. 

Насчет дублирования: DigiKeyboard я так понимаю отпределяет только методый отправки данных через USB с платы, а на прием не работает. Возможно как-то можно написать методы для приема данных на основе usbdrv.h

NeiroN
NeiroN аватар
Offline
Зарегистрирован: 15.06.2013

Методы отправки и дескриптор. Вобщем у вас вряд ли ума хватит их обьединить(переписать дескриптор), а мне лень...

Для Atmega32u4 USB-HID дескриптор содержит и клавиатуру и мышь. Если сможете понять - то он вам поможет.