Removed variable axis support from the HID_DESCRIPTOR_JOYSTICK() macro due to OS incompatibilities, replaced with fixed 3-axis joystick report structure.

This commit is contained in:
Dean Camera 2012-03-29 19:41:05 +00:00
parent 7cac5e22d7
commit b3aaffb792
7 changed files with 25 additions and 20 deletions

View file

@ -46,14 +46,13 @@
const USB_Descriptor_HIDReport_Datatype_t PROGMEM JoystickReport[] =
{
/* Use the HID class driver's standard Joystick report.
* Number of Axis: 2 (X/Y)
* Min X/Y Axis values: -100
* Max X/Y Axis values: 100
* Min physical X/Y Axis values (used to determine resolution): -1
* Max physical X/Y Axis values (used to determine resolution): 1
* Min X/Y/Z Axis values: -100
* Max X/Y/Z Axis values: 100
* Min physical X/Y/Z Axis values (used to determine resolution): -1
* Max physical X/Y/Z Axis values (used to determine resolution): 1
* Buttons: 2
*/
HID_DESCRIPTOR_JOYSTICK(2, -100, 100, -1, 1, 2)
HID_DESCRIPTOR_JOYSTICK(-100, 100, -1, 1, 2)
};
/** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall

View file

@ -59,6 +59,7 @@
{
int8_t X; /**< Current absolute joystick X position, as a signed 8-bit integer */
int8_t Y; /**< Current absolute joystick Y position, as a signed 8-bit integer */
int8_t Z; /**< Current absolute joystick Z position, as a signed 8-bit integer */
uint8_t Button; /**< Bit mask of the currently pressed joystick buttons */
} USB_JoystickReport_Data_t;

View file

@ -52,11 +52,12 @@ const USB_Descriptor_HIDReport_Datatype_t PROGMEM JoystickReport[] =
HID_RI_COLLECTION(8, 0x00), /* Physical */
HID_RI_USAGE(8, 0x30), /* Usage X */
HID_RI_USAGE(8, 0x31), /* Usage Y */
HID_RI_USAGE(8, 0x32), /* Usage Z */
HID_RI_LOGICAL_MINIMUM(8, -100),
HID_RI_LOGICAL_MAXIMUM(8, 100),
HID_RI_PHYSICAL_MINIMUM(8, -1),
HID_RI_PHYSICAL_MAXIMUM(8, 1),
HID_RI_REPORT_COUNT(8, 0x02),
HID_RI_REPORT_COUNT(8, 0x03),
HID_RI_REPORT_SIZE(8, 0x08),
HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE),
HID_RI_END_COLLECTION(0),

View file

@ -72,6 +72,7 @@
{
int8_t X; /**< Current absolute joystick X position, as a signed 8-bit integer */
int8_t Y; /**< Current absolute joystick Y position, as a signed 8-bit integer */
int8_t Z; /**< Current absolute joystick Z position, as a signed 8-bit integer */
uint8_t Button; /**< Bit mask of the currently pressed joystick buttons */
} USB_JoystickReport_Data_t;