projects
/
pub
/
USBasp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Added new USB_DeviceState variable to keep track of the current Device mode USB state.
[pub/USBasp.git]
/
LUFA
/
Drivers
/
USB
/
HighLevel
/
USBInterrupt.c
diff --git
a/LUFA/Drivers/USB/HighLevel/USBInterrupt.c
b/LUFA/Drivers/USB/HighLevel/USBInterrupt.c
index
c240bef
..
5edefa9
100644
(file)
--- a/
LUFA/Drivers/USB/HighLevel/USBInterrupt.c
+++ b/
LUFA/Drivers/USB/HighLevel/USBInterrupt.c
@@
-78,19
+78,17
@@
ISR(USB_GEN_vect, ISR_BLOCK)
{
\r
EVENT_USB_VBUSConnect();
\r
\r
{
\r
EVENT_USB_VBUSConnect();
\r
\r
- if (USB_
IsConnect
ed)
\r
+ if (USB_
DeviceState != DEVICE_STATE_Unattach
ed)
\r
EVENT_USB_Disconnect();
\r
\r
USB_ResetInterface();
\r
EVENT_USB_Disconnect();
\r
\r
USB_ResetInterface();
\r
-
\r
- USB_IsConnected = true;
\r
\r
\r
+ USB_DeviceState = DEVICE_STATE_Powered;
\r
EVENT_USB_Connect();
\r
}
\r
else
\r
{
\r
EVENT_USB_Connect();
\r
}
\r
else
\r
{
\r
- USB_IsConnected = false;
\r
-
\r
+ USB_DeviceState = DEVICE_STATE_Unattached;
\r
EVENT_USB_Disconnect();
\r
\r
USB_Detach();
\r
EVENT_USB_Disconnect();
\r
\r
USB_Detach();
\r
@@
-117,16
+115,12
@@
ISR(USB_GEN_vect, ISR_BLOCK)
if (!(USB_Options & USB_OPT_MANUAL_PLL))
\r
USB_PLL_Off();
\r
\r
if (!(USB_Options & USB_OPT_MANUAL_PLL))
\r
USB_PLL_Off();
\r
\r
- USB_IsSuspended = true;
\r
-
\r
- EVENT_USB_Suspend();
\r
-
\r
#if defined(USB_SERIES_2_AVR) && !defined(NO_LIMITED_CONTROLLER_CONNECT)
\r
#if defined(USB_SERIES_2_AVR) && !defined(NO_LIMITED_CONTROLLER_CONNECT)
\r
- if (USB_IsConnected)
\r
- {
\r
- USB_IsConnected = false;
\r
-
EVENT_USB_Disconnect()
;
\r
- }
\r
+ USB_DeviceState = DEVICE_STATE_Unattached;
\r
+ EVENT_USB_Disconnect();
\r
+ #else
\r
+
USB_DeviceState = DEVICE_STATE_Suspended
;
\r
+ EVENT_USB_Suspend();
\r
#endif
\r
}
\r
\r
#endif
\r
}
\r
\r
@@
-146,22
+140,19
@@
ISR(USB_GEN_vect, ISR_BLOCK)
USB_INT_Enable(USB_INT_SUSPEND);
\r
\r
#if defined(USB_SERIES_2_AVR) && !defined(NO_LIMITED_CONTROLLER_CONNECT)
\r
USB_INT_Enable(USB_INT_SUSPEND);
\r
\r
#if defined(USB_SERIES_2_AVR) && !defined(NO_LIMITED_CONTROLLER_CONNECT)
\r
- if (!(USB_IsConnected))
\r
- {
\r
- USB_IsConnected = true;
\r
-
EVENT_USB_Connect()
;
\r
- }
\r
+ USB_DeviceState = DEVICE_STATE_Powered;
\r
+ EVENT_USB_Connect();
\r
+ #else
\r
+
USB_DeviceState = DEVICE_STATE_Configured
;
\r
+ EVENT_USB_WakeUp();
\r
#endif
\r
#endif
\r
-
\r
- USB_IsSuspended = false;
\r
-
\r
- EVENT_USB_WakeUp();
\r
}
\r
\r
if (USB_INT_HasOccurred(USB_INT_EORSTI) && USB_INT_IsEnabled(USB_INT_EORSTI))
\r
{
\r
USB_INT_Clear(USB_INT_EORSTI);
\r
\r
}
\r
\r
if (USB_INT_HasOccurred(USB_INT_EORSTI) && USB_INT_IsEnabled(USB_INT_EORSTI))
\r
{
\r
USB_INT_Clear(USB_INT_EORSTI);
\r
\r
+ USB_DeviceState = DEVICE_STATE_Default;
\r
USB_ConfigurationNumber = 0;
\r
\r
USB_INT_Clear(USB_INT_SUSPEND);
\r
USB_ConfigurationNumber = 0;
\r
\r
USB_INT_Clear(USB_INT_SUSPEND);
\r
@@
-217,7
+208,7
@@
ISR(USB_GEN_vect, ISR_BLOCK)
\r
USB_INT_Enable(USB_INT_DDISCI);
\r
\r
\r
USB_INT_Enable(USB_INT_DDISCI);
\r
\r
- USB_HostState = HOST_STATE_
Attach
ed;
\r
+ USB_HostState = HOST_STATE_
Power
ed;
\r
}
\r
\r
if (USB_INT_HasOccurred(USB_INT_BCERRI) && USB_INT_IsEnabled(USB_INT_BCERRI))
\r
}
\r
\r
if (USB_INT_HasOccurred(USB_INT_BCERRI) && USB_INT_IsEnabled(USB_INT_BCERRI))
\r
@@
-227,7
+218,7
@@
ISR(USB_GEN_vect, ISR_BLOCK)
EVENT_USB_DeviceEnumerationFailed(HOST_ENUMERROR_NoDeviceDetected, 0);
\r
EVENT_USB_DeviceUnattached();
\r
\r
EVENT_USB_DeviceEnumerationFailed(HOST_ENUMERROR_NoDeviceDetected, 0);
\r
EVENT_USB_DeviceUnattached();
\r
\r
- if (USB_
IsConnect
ed)
\r
+ if (USB_
HostState != HOST_STATE_Unattach
ed)
\r
EVENT_USB_Disconnect();
\r
\r
USB_ResetInterface();
\r
EVENT_USB_Disconnect();
\r
\r
USB_ResetInterface();
\r
@@
-239,13
+230,16
@@
ISR(USB_GEN_vect, ISR_BLOCK)
{
\r
USB_INT_Clear(USB_INT_IDTI);
\r
\r
{
\r
USB_INT_Clear(USB_INT_IDTI);
\r
\r
- if (USB_IsConnected)
\r
- {
\r
- if (USB_CurrentMode == USB_MODE_HOST)
\r
- EVENT_USB_DeviceUnattached();
\r
+ if (USB_DeviceState != DEVICE_STATE_Unattached)
\r
+ EVENT_USB_Disconnect();
\r
\r
\r
+ if (USB_HostState != HOST_STATE_Unattached)
\r
+ {
\r
EVENT_USB_Disconnect();
\r
EVENT_USB_Disconnect();
\r
+ EVENT_USB_DeviceUnattached();
\r
}
\r
}
\r
+
\r
+ EVENT_USB_Disconnect();
\r
\r
EVENT_USB_UIDChange();
\r
\r
\r
EVENT_USB_UIDChange();
\r
\r