From e071f3897a0946c6be1e1b5e1f78eda8dcbf6fc7 Mon Sep 17 00:00:00 2001 From: Dean Camera Date: Tue, 21 Jul 2009 13:31:21 +0000 Subject: Added new USB_DeviceState variable to keep track of the current Device mode USB state. Added new Endpoint_ClearStatusStage() convenience function to assist with the status stages of control transfers. Removed vague USB_IsConnected global - test USB_DeviceState or USB_HostState explicitly to gain previous functionality. Removed USB_IsSuspended global - test USB_DeviceState against DEVICE_STATE_Suspended instead. Fixed possible enumeration errors from spinloops which may fail to exit if the USB connection is severed before the exit condition becomes true. --- LUFA/Drivers/USB/HighLevel/USBTask.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'LUFA/Drivers/USB/HighLevel/USBTask.c') diff --git a/LUFA/Drivers/USB/HighLevel/USBTask.c b/LUFA/Drivers/USB/HighLevel/USBTask.c index 894171f24..500a697bc 100644 --- a/LUFA/Drivers/USB/HighLevel/USBTask.c +++ b/LUFA/Drivers/USB/HighLevel/USBTask.c @@ -33,8 +33,6 @@ #define INCLUDE_FROM_USBTASK_C #include "USBTask.h" -volatile bool USB_IsSuspended; -volatile bool USB_IsConnected; volatile bool USB_IsInitialized; USB_Request_Header_t USB_ControlRequest; @@ -42,6 +40,10 @@ USB_Request_Header_t USB_ControlRequest; volatile uint8_t USB_HostState; #endif +#if defined(USB_CAN_BE_DEVICE) +volatile uint8_t USB_DeviceState; +#endif + void USB_USBTask(void) { #if defined(USB_HOST_ONLY) @@ -59,7 +61,7 @@ void USB_USBTask(void) #if defined(USB_CAN_BE_DEVICE) static void USB_DeviceTask(void) { - if (USB_IsConnected) + if (USB_DeviceState != DEVICE_STATE_Unattached) { uint8_t PrevEndpoint = Endpoint_GetCurrentEndpoint(); -- cgit v1.2.3