\r
while (RunBootloader)\r
USB_USBTask();\r
- \r
- /* Reset all configured hardware to their default states for the user app */\r
- ResetHardware();\r
\r
/* Wait 100ms to give the host time to register the disconnection */\r
_delay_ms(100);\r
USB_Init();\r
}\r
\r
-/** Resets all configured hardware required for the bootloader back to their original states. */\r
-void ResetHardware(void)\r
-{\r
- /* Shut down the USB subsystem */\r
- USB_ShutDown();\r
-}\r
-\r
/** Event handler for the USB_ConfigurationChanged event. This configures the device's endpoints ready\r
* to relay data to and from the attached USB host.\r
*/\r
#endif\r
)\r
{\r
- USB_ShutDown();\r
-\r
#if defined(USB_CAN_BE_BOTH)\r
USB_CurrentMode = Mode;\r
#endif\r
EVENT_USB_Disconnect();\r
#endif\r
\r
+ USB_ResetInterface();\r
USB_Detach();\r
-\r
- USB_INT_DisableAllInterrupts();\r
- USB_INT_ClearAllInterrupts();\r
-\r
- USB_IsInitialized = false;\r
-\r
- #if defined(USB_CAN_BE_HOST)\r
- USB_HostState = HOST_STATE_Unattached;\r
- #endif\r
-\r
- #if defined(USB_CAN_BE_DEVICE)\r
- USB_DeviceState = DEVICE_STATE_Unattached;\r
- USB_ConfigurationNumber = 0;\r
- USB_RemoteWakeupEnabled = false;\r
- USB_CurrentlySelfPowered = false;\r
- #endif\r
-\r
- #if defined(CAN_BE_BOTH)\r
- USB_CurrentMode = USB_MODE_NONE;\r
- #endif\r
-\r
- USB_Interface_Disable();\r
+ USB_Controller_Disable();\r
USB_PLL_Off();\r
\r
#if defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR)\r
#if defined(USB_CAN_BE_BOTH)\r
UHWCON &= ~(1 << UIDE);\r
#endif\r
+\r
+ USB_IsInitialized = false;\r
+\r
+ #if defined(CAN_BE_BOTH)\r
+ USB_CurrentMode = USB_MODE_NONE;\r
+ #endif\r
}\r
\r
void USB_ResetInterface(void)\r
while (!(USB_PLL_IsReady()));\r
}\r
\r
- USB_Interface_Reset();\r
+ USB_Controller_Reset();\r
\r
#if defined(USB_CAN_BE_BOTH)\r
if (UHWCON & (1 << UIDE))\r
#define USB_CLK_Freeze() MACROS{ USBCON |= (1 << FRZCLK); }MACROE\r
#define USB_CLK_Unfreeze() MACROS{ USBCON &= ~(1 << FRZCLK); }MACROE\r
\r
- #define USB_Interface_Enable() MACROS{ USBCON |= (1 << USBE); }MACROE\r
- #define USB_Interface_Disable() MACROS{ USBCON &= ~(1 << USBE); }MACROE\r
- #define USB_Interface_Reset() MACROS{ uint8_t Temp = USBCON; USBCON = (Temp & ~(1 << USBE)); \\r
+ #define USB_Controller_Enable() MACROS{ USBCON |= (1 << USBE); }MACROE\r
+ #define USB_Controller_Disable() MACROS{ USBCON &= ~(1 << USBE); }MACROE\r
+ #define USB_Controller_Reset() MACROS{ uint8_t Temp = USBCON; USBCON = (Temp & ~(1 << USBE)); \\r
USBCON = (Temp | (1 << USBE)); }MACROE\r
\r
/* Inline Functions: */\r