void USB_USBTask(void)
{
- #if defined(USB_HOST_ONLY)
- USB_HostTask();
- #elif defined(USB_DEVICE_ONLY)
- USB_DeviceTask();
- #else
+ #if defined(USB_CAN_BE_BOTH)
if (USB_CurrentMode == USB_MODE_Device)
USB_DeviceTask();
- #if defined(USB_CAN_BE_HOST)
else if (USB_CurrentMode == USB_MODE_Host)
USB_HostTask();
- #endif
+ #elif defined(USB_CAN_BE_HOST)
+ USB_HostTask();
+ #elif defined(USB_CAN_BE_DEVICE)
+ USB_DeviceTask();
#endif
}
#if defined(USB_CAN_BE_DEVICE)
static void USB_DeviceTask(void)
{
- if (USB_DeviceState != DEVICE_STATE_Unattached)
- {
- uint8_t PrevEndpoint = Endpoint_GetCurrentEndpoint();
+ if (USB_DeviceState == DEVICE_STATE_Unattached)
+ return;
+
+ uint8_t PrevEndpoint = Endpoint_GetCurrentEndpoint();
- Endpoint_SelectEndpoint(ENDPOINT_CONTROLEP);
+ Endpoint_SelectEndpoint(ENDPOINT_CONTROLEP);
- if (Endpoint_IsSETUPReceived())
- USB_Device_ProcessControlRequest();
+ if (Endpoint_IsSETUPReceived())
+ USB_Device_ProcessControlRequest();
- Endpoint_SelectEndpoint(PrevEndpoint);
- }
+ Endpoint_SelectEndpoint(PrevEndpoint);
}
#endif