/* This file has been prepared for Doxygen automatic documentation generation.*/ /*! \file usb_task.h ********************************************************************* * * \brief * This file manages the USB task either device/host or both. * * The USB task selects the correct USB task (usb_device task or usb_host task * to be executed depending on the current mode available. * * According to USB_DEVICE_FEATURE and USB_HOST_FEATURE value (located in conf_usb.h file) * The usb_task can be configured to support USB DEVICE mode or USB Host mode or both * for a dual role device application. * * This module also contains the general USB interrupt subroutine. This subroutine is used * to detect asynchronous USB events. * * Note: * - The usb_task belongs to the scheduler, the usb_device_task and usb_host do not, they are called * from the general usb_task * - See conf_usb.h file for more details about the configuration of this module * * \addtogroup usbstick * * \author * Atmel Corporation: http://www.atmel.com \n * Support email: avr@atmel.com * ******************************************************************************/ /* Copyright (c) 2008 ATMEL Corporation All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holders nor the names of contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef USB_TASK_H_ #define USB_TASK_H_ /** \ingroup usbstick \defgroup usbdriver USB Driver @{ */ //_____ I N C L U D E S ____________________________________________________ //_____ M A C R O S ________________________________________________________ //! \name USB Events //! @{ //! Send event #define Usb_send_event(x) (g_usb_event |= (1<