Es necesario editar el descriptor del informe HID, pero también el código principal. Cambia esta parte del descriptor HID:
0x05, 0x09, /* Usage Page (Button) */
0x09, 0x02, /* Usage (Button 2) */
0x09, 0x01, /* Usage (Button 1) */
0x15, 0x00, /* Logical Minimum (0) */
0x25, 0x01, /* Logical Maximum (1) */
0x75, 0x01, /* Report Size (1) */
0x95, 0x02, /* Report Count (2) */
0x81, 0x02, /* Input (Data, Variable, Absolute) */
0x75, 0x06, /* Report Size (6) */
0x95, 0x01, /* Report Count (1) */
0x81, 0x01, /* Input (Constant) */
0xc0 /* End Collection */
A esto:
0x05, 0x09, /* Usage Page (Button) */
0x09, 0x03, /* Usage (Button 3) */
0x09, 0x02, /* Usage (Button 2) */
0x09, 0x01, /* Usage (Button 1) */
0x15, 0x00, /* Logical Minimum (0) */
0x25, 0x01, /* Logical Maximum (1) */
0x75, 0x01, /* Report Size (1) */
0x95, 0x03, /* Report Count (3) */
0x81, 0x02, /* Input (Data, Variable, Absolute) */
0x75, 0x06, /* Report Size (5) */
0x95, 0x01, /* Report Count (1) */
0x81, 0x01, /* Input (Constant) */
0xc0 /* End Collection */
Y establece el tercer bit del elemento Buttons en el elemento CALLBACK_HID_Device_CreateHIDReport()
del archivo fuente principal, es decir, para "pulsar" el nuevo tercer botón, utilice
if (ButtonStatus_LCL & BUTTONS_BUTTON1)
JoystickReport->Button |= (1 << 2);
0 votos
¿Funciona bien la demo sin editar?
0 votos
Sip, he conseguido que funcione. pero dos botones no son suficientes para mí :)
1 votos
El ejemplo del teclado LUFA muestra cómo detectar botones en los pines IO y generar eventos de teclado. Usando esto, usted tiene fácil acceso a los códigos de escaneo para todo el teclado