tested boot mouse working

This commit is contained in:
hathach 2018-07-25 00:16:09 +07:00
parent 67e52af936
commit 71934228d2
3 changed files with 37 additions and 41 deletions

View File

@ -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);
// }
// }
}

View File

@ -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)
{

View File

@ -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 ),