\r
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);\r
\r
- /* Startup message */\r
puts_P(PSTR(ESC_RESET ESC_BG_WHITE ESC_INVERSE_ON ESC_ERASE_DISPLAY\r
"Bluetooth Host Demo running.\r\n" ESC_INVERSE_OFF));\r
\r
{\r
puts_P(PSTR(ESC_BG_RED "Dev Enum Error\r\n"));\r
printf_P(PSTR(" -- Error Code %d\r\n"), ErrorCode);\r
+ printf_P(PSTR(" -- Sub Error Code %d\r\n"), SubErrorCode);\r
printf_P(PSTR(" -- In State %d\r\n"), USB_HostState);\r
\r
LEDs_SetAllLEDs(LEDMASK_USB_ERROR);\r
LEDs_SetAllLEDs(LEDS_LED1);\r
\r
/* Wait until USB device disconnected */\r
- while (USB_IsConnected);\r
+ USB_HostState = HOST_STATE_WaitForDeviceRemoval;\r
break;\r
}\r
\r
puts_P(PSTR("Bluetooth Dongle Detected.\r\n"));\r
\r
- /* Standard request to set the device configuration to configuration 1 */\r
- USB_ControlRequest = (USB_Request_Header_t)\r
- {\r
- bmRequestType: (REQDIR_HOSTTODEVICE | REQTYPE_STANDARD | REQREC_DEVICE),\r
- bRequest: REQ_SetConfiguration,\r
- wValue: 1,\r
- wIndex: 0,\r
- wLength: 0,\r
- };\r
- \r
- /* Select the control pipe for the request transfer */\r
- Pipe_SelectPipe(PIPE_CONTROLPIPE);\r
-\r
- /* Send the request, display error and wait for device detatch if request fails */\r
- if ((ErrorCode = USB_Host_SendControlRequest(NULL)) != HOST_SENDCONTROL_Successful)\r
+ /* Set the device configuration to the first configuration (rarely do devices use multiple configurations) */\r
+ if ((ErrorCode = USB_Host_SetDeviceConfiguration(1)) != HOST_SENDCONTROL_Successful)\r
{\r
puts_P(PSTR("Control Error (Set Configuration).\r\n"));\r
printf_P(PSTR(" -- Error Code: %d\r\n"), ErrorCode);\r
LEDs_SetAllLEDs(LEDS_LED1);\r
\r
/* Wait until USB device disconnected */\r
- while (USB_IsConnected);\r
+ USB_HostState = HOST_STATE_WaitForDeviceRemoval;\r
break;\r
}\r
\r
LEDs_SetAllLEDs(LEDS_LED1);\r
\r
/* Wait until USB device disconnected */\r
- while (USB_IsConnected);\r
+ USB_HostState = HOST_STATE_WaitForDeviceRemoval;\r
break;\r
}\r
\r
\r
USB_HostState = HOST_STATE_Ready;\r
break;\r
- case HOST_STATE_Ready:\r
- /* Do nothing, Bluetooth stack will take care of enumeration */\r
- \r
- break;\r
}\r
}\r