summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhathach <[email protected]>2018-07-25 00:16:09 +0700
committerhathach <[email protected]>2018-07-25 00:16:09 +0700
commit71934228d2902079da0c0dc65d97cc78f1b1eaab (patch)
treec580b64fe37dc70798a303dc20f915a3471604f4
parent67e52af936fe85c11300355293b34b5523439d55 (diff)
tested boot mouse working
-rw-r--r--examples/device/nrf52840/src/main.c64
-rw-r--r--src/device/usbd.c4
-rw-r--r--src/device/usbd_desc.c10
3 files changed, 37 insertions, 41 deletions
diff --git a/examples/device/nrf52840/src/main.c b/examples/device/nrf52840/src/main.c
index 000adb9dc..84876e7a5 100644
--- a/examples/device/nrf52840/src/main.c
+++ b/examples/device/nrf52840/src/main.c
@@ -103,7 +103,36 @@ void virtual_com_task(void)
void usb_hid_task(void)
{
/*------------- Keyboard -------------*/
- if ( tud_hid_keyboard_ready() )
+// if ( tud_hid_keyboard_ready() )
+// {
+// // Poll every 10ms
+// static tu_timeout_t tm = { .start = 0, .interval = 10 };
+//
+// if ( !tu_timeout_expired(&tm) ) return; // not enough time
+// tu_timeout_reset(&tm);
+//
+// uint32_t const btn = board_buttons();
+//
+// if ( btn )
+// {
+// uint8_t keycode[6] = { 0 };
+//
+// for(uint8_t i=0; i < 6; i++)
+// {
+// if ( btn & (1 << i) ) keycode[i] = HID_KEY_A + i;
+// }
+//
+// tud_hid_keyboard_keycode(0, keycode);
+// }else
+// {
+// // Null means all zeroes keycodes
+// tud_hid_keyboard_keycode(0, NULL);
+// }
+// }
+
+
+ /*------------- Mouse -------------*/
+ if ( tud_hid_mouse_ready() )
{
// Poll every 10ms
static tu_timeout_t tm = { .start = 0, .interval = 10 };
@@ -115,40 +144,9 @@ void usb_hid_task(void)
if ( btn )
{
- uint8_t keycode[6] = { 0 };
-
- for(uint8_t i=0; i < 6; i++)
- {
- if ( btn & (1 << i) ) keycode[i] = HID_KEY_A + i;
- }
-
- tud_hid_keyboard_keycode(0, keycode);
- }else
- {
- // Null means all zeroes keycodes
- tud_hid_keyboard_keycode(0, NULL);
+ tud_hid_mouse_data(0, 10, 0, 0, 0);
}
}
-
-
- /*------------- Mouse -------------*/
- // if ( tud_hid_mouse_ready() )
- // {
- // // Poll every 10ms
- // static tu_timeout_t tm = { .start = 0, .interval = 10 };
- //
- // if ( !tu_timeout_expired(&tm) ) return; // not enough time
- // tu_timeout_reset(&tm);
- //
- // uint32_t const btn = board_buttons();
- //
- // if ( btn )
- // {
- // hid_mouse_report_t report = { .buttons = 0, .x = 10, .y = 0, .wheel = 0 };
- // tud_hid_mouse_report(&report);
- // }
- // }
-
}
diff --git a/src/device/usbd.c b/src/device/usbd.c
index 2b294cd3e..bd169bb6f 100644
--- a/src/device/usbd.c
+++ b/src/device/usbd.c
@@ -353,8 +353,6 @@ static tusb_error_t proc_control_request_st(uint8_t rhport, tusb_control_request
error = TUSB_ERROR_NONE;
//------------- Standard Request e.g in enumeration -------------//
- /* Microsoft Windows will awkwardly get HID Report Descriptor with
- * Recipient = Device instead of Interface */
if( TUSB_REQ_RCPT_DEVICE == p_request->bmRequestType_bit.recipient &&
TUSB_REQ_TYPE_STANDARD == p_request->bmRequestType_bit.type )
{
@@ -398,7 +396,7 @@ static tusb_error_t proc_control_request_st(uint8_t rhport, tusb_control_request
}
//------------- Class/Interface Specific Request -------------//
- else if ( TUSB_REQ_RCPT_INTERFACE == p_request->bmRequestType_bit.recipient)
+ else if ( TUSB_REQ_RCPT_INTERFACE == p_request->bmRequestType_bit.recipient )
{
if (_usbd_dev.itf2drv[ u16_low_u8(p_request->wIndex) ] < USBD_CLASS_DRIVER_COUNT)
{
diff --git a/src/device/usbd_desc.c b/src/device/usbd_desc.c
index d065ed352..295eb166c 100644
--- a/src/device/usbd_desc.c
+++ b/src/device/usbd_desc.c
@@ -118,7 +118,7 @@
// Keyboard Report Descriptor
//--------------------------------------------------------------------+
#if CFG_TUD_HID_KEYBOARD
-ATTR_PACKED uint8_t const _desc_auto_hid_kbd_report[] = {
+uint8_t const _desc_auto_hid_kbd_report[] = {
HID_USAGE_PAGE ( HID_USAGE_PAGE_DESKTOP ),
HID_USAGE ( HID_USAGE_DESKTOP_KEYBOARD ),
HID_COLLECTION ( HID_COLLECTION_APPLICATION ),
@@ -170,7 +170,7 @@ ATTR_PACKED uint8_t const _desc_auto_hid_kbd_report[] = {
// Mouse Report Descriptor
//--------------------------------------------------------------------+
#if CFG_TUD_HID_MOUSE
-ATTR_PACKED uint8_t const _desc_auto_hid_mse_report[] = {
+uint8_t const _desc_auto_hid_mse_report[] = {
HID_USAGE_PAGE ( HID_USAGE_PAGE_DESKTOP ),
HID_USAGE ( HID_USAGE_DESKTOP_MOUSE ),
HID_COLLECTION ( HID_COLLECTION_APPLICATION ),
@@ -179,18 +179,18 @@ ATTR_PACKED uint8_t const _desc_auto_hid_mse_report[] = {
HID_COLLECTION ( HID_COLLECTION_PHYSICAL ),
HID_USAGE_PAGE ( HID_USAGE_PAGE_BUTTON ),
HID_USAGE_MIN ( 1 ),
- HID_USAGE_MAX ( 5 ),
+ HID_USAGE_MAX ( 3 ),
HID_LOGICAL_MIN ( 0 ),
HID_LOGICAL_MAX ( 1 ),
// Left, Right, Middle, Backward, Forward mouse buttons
- HID_REPORT_COUNT ( 5 ),
+ HID_REPORT_COUNT ( 3 ),
HID_REPORT_SIZE ( 1 ),
HID_INPUT ( HID_DATA | HID_VARIABLE | HID_ABSOLUTE ),
// 3 bit padding
HID_REPORT_COUNT ( 1 ),
- HID_REPORT_SIZE ( 3 ),
+ HID_REPORT_SIZE ( 5 ),
HID_INPUT ( HID_CONSTANT ),
HID_USAGE_PAGE ( HID_USAGE_PAGE_DESKTOP ),