Hello,recently I expanded the Joystick class driver demo to support for 6 axes, 12 buttons and POV switch, to the report size total of 8 bytes. All of data acquisition works well already, along with custom HID descriptor. The next thing I'd like to do - is to squeeze some more precision out of the ADC and use 16-bit axis values, but this leads to report size of 14 bytes.
I tried to expand JOYSTICK_EPSIZE to 16 bytes to accomodate report that big, but with no luck. Increasing report size over 8 bytes causes enumeration problem.
Of course data types and report sizes were changed too, based on Dean's joystick descriptor macro.
AFAIK, in the full-speed mode I should be able, in theory, to push 64-byte reports at a time. Maybe I'm missing some part?
What should be done to accomodate for longer reports?The report struct is:
typedef struct {
int8_t Axis[6]; // Area for 6 axes: X,Y,Z,U,RX,RY
uint16_t Buttons :12; // Bit mask of the currently pressed joystick buttons
uint8_t POV :4; // Current value of hat switch angle
} USB_JoystickReport_Data_t;
Problems arise when int18_t Axis[6] gets changed to int16_t Axis[6], along with the HID descriptor.Thanks in advance :)