X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/a9d5e129b76449c73a853af450d7d353512cd3a0..4f74075fad7f1e7a35d04ff534d9d6a57d2b97fc:/LUFA/Drivers/USB/HighLevel/USBInterrupt.c diff --git a/LUFA/Drivers/USB/HighLevel/USBInterrupt.c b/LUFA/Drivers/USB/HighLevel/USBInterrupt.c index 00fe7d1dc..3cf4bb3e1 100644 --- a/LUFA/Drivers/USB/HighLevel/USBInterrupt.c +++ b/LUFA/Drivers/USB/HighLevel/USBInterrupt.c @@ -148,11 +148,18 @@ ISR(USB_GEN_vect, ISR_BLOCK) ENDPOINT_BANK_SINGLE); #if defined(INTERRUPT_CONTROL_ENDPOINT) - USB_INT_Enable(USB_INT_ENDPOINT_SETUP); + USB_INT_Enable(USB_INT_RXSTPI); #endif EVENT_USB_Device_Reset(); } + + if (USB_INT_HasOccurred(USB_INT_SOFI) && USB_INT_IsEnabled(USB_INT_SOFI)) + { + USB_INT_Clear(USB_INT_SOFI); + + EVENT_USB_Device_StartOfFrame(); + } #endif #if defined(USB_CAN_BE_HOST) @@ -222,14 +229,14 @@ ISR(USB_GEN_vect, ISR_BLOCK) #endif } -#if defined(INTERRUPT_CONTROL_ENDPOINT) +#if defined(INTERRUPT_CONTROL_ENDPOINT) && defined(USB_CAN_BE_DEVICE) ISR(USB_COM_vect, ISR_BLOCK) { uint8_t PrevSelectedEndpoint = Endpoint_GetCurrentEndpoint(); USB_USBTask(); - USB_INT_Clear(USB_INT_ENDPOINT_SETUP); + USB_INT_Clear(USB_INT_RXSTPI); Endpoint_SelectEndpoint(PrevSelectedEndpoint); }