From 100a197d0efa177b9f514cbf5292a6a333b03de9 Mon Sep 17 00:00:00 2001 From: Dean Camera Date: Sat, 19 Feb 2011 12:09:55 +0000 Subject: [PATCH] Reduced latency for executing the Start-Of-Frame events (if enabled in the user application). --- LUFA.pnproj | 2 +- LUFA/Drivers/USB/LowLevel/USBInterrupt.c | 28 ++++++++++++------------ LUFA/ManPages/ChangeLog.txt | 1 + LUFA/ManPages/LUFAPoweredProjects.txt | 1 + 4 files changed, 17 insertions(+), 15 deletions(-) diff --git a/LUFA.pnproj b/LUFA.pnproj index 5e53a2b36d..3fc4290f52 100644 --- a/LUFA.pnproj +++ b/LUFA.pnproj @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/LUFA/Drivers/USB/LowLevel/USBInterrupt.c b/LUFA/Drivers/USB/LowLevel/USBInterrupt.c index fdcfef2726..34234fe84a 100644 --- a/LUFA/Drivers/USB/LowLevel/USBInterrupt.c +++ b/LUFA/Drivers/USB/LowLevel/USBInterrupt.c @@ -74,6 +74,15 @@ void USB_INT_ClearAllInterrupts(void) ISR(USB_GEN_vect, ISR_BLOCK) { #if defined(USB_CAN_BE_DEVICE) + #if !defined(NO_SOF_EVENTS) + 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_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR) if (USB_INT_HasOccurred(USB_INT_VBUS) && USB_INT_IsEnabled(USB_INT_VBUS)) { @@ -161,18 +170,18 @@ ISR(USB_GEN_vect, ISR_BLOCK) EVENT_USB_Device_Reset(); } + #endif + #if defined(USB_CAN_BE_HOST) #if !defined(NO_SOF_EVENTS) - if (USB_INT_HasOccurred(USB_INT_SOFI) && USB_INT_IsEnabled(USB_INT_SOFI)) + if (USB_INT_HasOccurred(USB_INT_HSOFI) && USB_INT_IsEnabled(USB_INT_HSOFI)) { - USB_INT_Clear(USB_INT_SOFI); + USB_INT_Clear(USB_INT_HSOFI); - EVENT_USB_Device_StartOfFrame(); + EVENT_USB_Host_StartOfFrame(); } #endif - #endif - #if defined(USB_CAN_BE_HOST) if (USB_INT_HasOccurred(USB_INT_DDISCI) && USB_INT_IsEnabled(USB_INT_DDISCI)) { USB_INT_Clear(USB_INT_DDISCI); @@ -218,15 +227,6 @@ ISR(USB_GEN_vect, ISR_BLOCK) USB_ResetInterface(); } - - #if !defined(NO_SOF_EVENTS) - if (USB_INT_HasOccurred(USB_INT_HSOFI) && USB_INT_IsEnabled(USB_INT_HSOFI)) - { - USB_INT_Clear(USB_INT_HSOFI); - - EVENT_USB_Host_StartOfFrame(); - } - #endif #endif #if defined(USB_CAN_BE_BOTH) diff --git a/LUFA/ManPages/ChangeLog.txt b/LUFA/ManPages/ChangeLog.txt index 80e56de57b..915b83a4db 100644 --- a/LUFA/ManPages/ChangeLog.txt +++ b/LUFA/ManPages/ChangeLog.txt @@ -51,6 +51,7 @@ * - Renamed the PRNT_Host_SendString(), CDC_Host_SendString() and CDC_Device_SendString() functions to *_SendData(), and * added new versions of the *_SendString() routines that expect a null terminated string instead * - Renamed all driver termination *_ShutDown() functions to the more logical name *_Disable() + * - Reduced latency for executing the Start-Of-Frame events (if enabled in the user application) * - Library Applications: * - Changed the XPLAINBridge software UART to use the regular timer CTC mode instead of the alternative CTC mode * via the Input Capture register, to reduce user confusion diff --git a/LUFA/ManPages/LUFAPoweredProjects.txt b/LUFA/ManPages/LUFAPoweredProjects.txt index 1bd16815e2..4dc51d01c6 100644 --- a/LUFA/ManPages/LUFAPoweredProjects.txt +++ b/LUFA/ManPages/LUFAPoweredProjects.txt @@ -43,6 +43,7 @@ * - CAMTRIG, a remote Camera Trigger device: http://code.astraw.com/projects/motmot/camtrig * - CD Driver Emulator Dongle for ISO Files: http://cdemu.blogspot.com/ * - ClockTamer, a configurable clock generator: http://code.google.com/p/clock-tamer/ + * - DIY PS3 controller emulator: https://code.google.com/p/diyps3controller/ * - EMUCOMBOX, a USB-RS422 adapter for E-Mu Emax samplers: http://users.skynet.be/emxp/EMUCOMBOX.htm * - Estick JTAG, an ARM JTAG debugger: http://code.google.com/p/estick-jtag/ * - "Fingerlicking Wingdinger" (WARNING: Bad Language if no Javascript), a MIDI controller: http://noisybox.net/electronics/wingdinger/