aboutsummaryrefslogtreecommitdiffstats
path: root/LUFA/Drivers/USB/HighLevel/Events.h
diff options
context:
space:
mode:
authorDean Camera <dean@fourwalledcubicle.com>2010-09-05 07:11:53 +0000
committerDean Camera <dean@fourwalledcubicle.com>2010-09-05 07:11:53 +0000
commit18cbd31605dae070f00900161090a72d3eb0f8ab (patch)
tree1166a9c1b27630111d337b76a0eee1292b0d633b /LUFA/Drivers/USB/HighLevel/Events.h
parent0174d8ea70f3d7180e6ea3da2b3720273adb33d9 (diff)
downloadlufa-18cbd31605dae070f00900161090a72d3eb0f8ab.tar.gz
lufa-18cbd31605dae070f00900161090a72d3eb0f8ab.tar.bz2
lufa-18cbd31605dae070f00900161090a72d3eb0f8ab.zip
Added new USB_Device_GetFrameNumber() and USB_Host_GetFrameNumber() functions to retrieve the current USB frame number.
Added new USB_Host_EnableSOFEvents(), USB_Host_DisableSOFEvents() and EVENT_USB_Host_StartOfFrame() for the user application handling of USB Start of Frame events while in USB Host mode. Changed over all demos, drivers and internal functions to use the current frame number over the Start of Frame flag where possible to free up the Start of Frame flag for interrupt use in the user application.
Diffstat (limited to 'LUFA/Drivers/USB/HighLevel/Events.h')
-rw-r--r--LUFA/Drivers/USB/HighLevel/Events.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/LUFA/Drivers/USB/HighLevel/Events.h b/LUFA/Drivers/USB/HighLevel/Events.h
index 5c295b61f..ae7debbb7 100644
--- a/LUFA/Drivers/USB/HighLevel/Events.h
+++ b/LUFA/Drivers/USB/HighLevel/Events.h
@@ -180,6 +180,23 @@
*/
void EVENT_USB_Host_DeviceEnumerationComplete(void);
+ /** Event for USB Start Of Frame detection, when enabled. This event fires at the start of each USB
+ * frame, once per millisecond, and is synchronized to the USB bus. This can be used as an accurate
+ * millisecond timer source when the USB bus is not suspended while in host mode.
+ *
+ * This event is time-critical; it is run once per millisecond and thus long handlers will significantly
+ * degrade device performance. This event should only be enabled when needed to reduce device wake-ups.
+ *
+ * \note This event is not normally active - it must be manually enabled and disabled via the
+ * \ref USB_Host_EnableSOFEvents() and \ref USB_Host_DisableSOFEvents() commands after enumeration of
+ * a USB device.
+ * \n\n
+ *
+ * \note This event does not exist if the USB_DEVICE_ONLY token is supplied to the compiler (see
+ * \ref Group_USBManagement documentation).
+ */
+ void EVENT_USB_Host_StartOfFrame(void);
+
/** Event for USB device connection. This event fires when the AVR in device mode and the device is connected
* to a host, beginning the enumeration process, measured by a rising level on the AVR's VBUS pin.
*
@@ -339,6 +356,7 @@
void EVENT_USB_Host_DeviceEnumerationFailed(const uint8_t ErrorCode,
const uint8_t SubErrorCode)
ATTR_WEAK ATTR_ALIAS(USB_Event_Stub);
+ void EVENT_USB_Host_StartOfFrame(void) ATTR_WEAK ATTR_ALIAS(USB_Event_Stub);
#endif
#if defined(USB_CAN_BE_DEVICE)