I WANT TO INTERFACE MY KIT WITH TWO SWITCHES AND 2 VARIABLE RESISTANCE TO TO DISPLAY DATA ON X AN Y AXIS OF GAME CONTROL AND SWITCH TO ENABLE DIGITAL INPUT 1 AND 2 RESPECTIVELY.
Tsuneo Chinzei I HAD LEARNED YOUR GENERIC PROGRAM TO SEND THE ARRAY FOR INPUT AND OUTPUT REPORT AND IMPLIMENT IT AND CHANGE THE CONFIGURATION TO GET GRAPHICAL INTERFACE ALSO BUT i DONT UNDERSTAND THE REPORT SECTION AND THEIR PROPER USE HOW TO CHANGE IT ACCORDING TO OUR REQUIREMENT.
EAGERLY WAITING FOR ANY HELP
MY MOUSE DEVICE DESCRIPTOR
const BYTE HID_ReportDescriptor[] = { HID_UsagePage(HID_USAGE_PAGE_GENERIC), HID_Usage(HID_USAGE_GENERIC_MOUSE ), HID_Collection (HID_Application), HID_Usage(HID_USAGE_GENERIC_POINTER), HID_Collection (HID_Physical), HID_UsagePage(HID_USAGE_PAGE_BUTTON), HID_UsageMin(1), HID_UsageMax(3), HID_LogicalMin(0), HID_LogicalMax(1), HID_ReportCount(3), HID_ReportSize(1), HID_Input(HID_Data | HID_Variable | HID_Absolute), HID_ReportCount(1), HID_ReportSize(5), HID_Input(HID_Constant|HID_Variable|HID_Variable), HID_UsagePage(HID_USAGE_PAGE_GENERIC), HID_Usage(HID_USAGE_GENERIC_X), HID_Usage(HID_USAGE_GENERIC_Y), HID_LogicalMin(0X81), HID_LogicalMax(127), HID_ReportSize(8), HID_ReportCount(2), HID_Input(HID_Data|HID_Variable|HID_Relative), HID_EndCollection, HID_EndCollection, }; const WORD HID_ReportDescSize = sizeof(HID_ReportDescriptor);
MY DEVICE INREPORT AND OUT FOR MOUSE
BYTE InReport[HID_INPUT_REPORT_BYTES]; /* Edited HID Input Report */ /* Bit0: Button */ /* Bit1..7: Reserved */ BYTE OutReport[HID_OUTPUT_REPORT_BYTES]; /* Edited HID Out Report */ /* Bit0..7: LEDs */ /* * Get HID Input Report -> InReport */ void GetInReport (void) { /*USE ONLY ONE SWITCH TO SEE THE OUTPUT OF LEFT AND RIGHT CLICK SO SENT HEX CODE RELATIVE TO THEIR REPORT */ if ((IOPIN0 & PBINT) == 0) { /* Check if PBINT is pressed */ /*Edited*/ InReport[0] = 0X01; //RIGHT CLICK InReport[1] = 0X7F; //X AXIS InReport[2] = 0X7F; //Y AXIS } if ((IOPIN0 & PBINT) == 1) { /* Check if PBINT is RELEALED */ /*Edited*/ InReport[0] = 0X04; //LEFT CLICK InReport[1] = 0XFF; //X AXIS InReport[2] = 0XFF; //Y AXIS } /*Edited*/ } /* * Set HID Output Report <- OutReport */ void SetOutReport (void) { unsigned int i; for(i=0;i<8;i++) { IOPIN1 = ((OutReport[0])<<16); //Edited } }
MY EDITED SECTION OF USBCONFIG.H
/* // <h> USB Endpoint size // <o0> HID_INPUT_REPORT_BYTES <1-256> // // <o1> HID_OUTPUT_REPORT_BYTES <1-256> // // <o2>HID_FEATURE_REPORT_BYTES <1-256> // // <o3>VENDOR_ID <0X0000-0XFFFF> // // <o4>PRODUCT_ID <0X0000-0XFFFF> // </h> */ /*Edited*/ #define HID_INPUT_REPORT_BYTES 3 /* size of report in Bytes */ #define HID_OUTPUT_REPORT_BYTES 3 /* size of report in Bytes */ #define HID_FEATURE_REPORT_BYTES 3 /* size of report in Bytes */ #define VENDOR_ID 0xC251 #define PRODUCT_ID 0x1301 /*Edited*/