Add FatFS library to the Webserver project, extend the HTTP server so that it now...
[pub/USBasp.git] / LUFA / Drivers / Board / LEDs.h
index 1874dfd..61f79ce 100644 (file)
@@ -1,21 +1,21 @@
 /*\r
              LUFA Library\r
-     Copyright (C) Dean Camera, 2009.\r
+     Copyright (C) Dean Camera, 2010.\r
               \r
   dean [at] fourwalledcubicle [dot] com\r
       www.fourwalledcubicle.com\r
 */\r
 \r
 /*\r
-  Copyright 2009  Dean Camera (dean [at] fourwalledcubicle [dot] com)\r
-\r
-  Permission to use, copy, modify, and distribute this software\r
-  and its documentation for any purpose and without fee is hereby\r
-  granted, provided that the above copyright notice appear in all\r
-  copies and that both that the copyright notice and this\r
-  permission notice and warranty disclaimer appear in supporting\r
-  documentation, and that the name of the author not be used in\r
-  advertising or publicity pertaining to distribution of the\r
+  Copyright 2010  Dean Camera (dean [at] fourwalledcubicle [dot] com)\r
+\r
+  Permission to use, copy, modify, distribute, and sell this \r
+  software and its documentation for any purpose is hereby granted\r
+  without fee, provided that the above copyright notice appear in \r
+  all copies and that both that the copyright notice and this\r
+  permission notice and warranty disclaimer appear in supporting \r
+  documentation, and that the name of the author not be used in \r
+  advertising or publicity pertaining to distribution of the \r
   software without specific, written prior permission.\r
 \r
   The author disclaim all warranties with regard to this\r
  *    - None\r
  *\r
  *  \section Module Description\r
- *  Functions, macros, variables, enums and types related to the control of board LEDs.\r
+ *  Hardware LEDs driver. This provides an easy to use driver for the hardware LEDs present on many boards. It\r
+ *  provides an interface to configure, test and change the status of all the board LEDs.\r
  *\r
  *  If the BOARD value is set to BOARD_USER, this will include the /Board/Dataflash.h file in the user project\r
  *  directory. Otherwise, it will include the appropriate built in board driver header file.\r
  *\r
+ *  \note To make code as compatible as possible, it is assumed that all boards carry a minimum of four LEDs. If\r
+ *        a board contains less than four LEDs, the remaining LED masks are defined to 0 so as to have no effect.\r
+ *        If other behaviour is desired, either alias the remaining LED masks to existing LED masks via the -D \r
+ *        switch in the project makefile, or alias them to nothing in the makefile to cause compilation errors when\r
+ *        a non-existing LED is referenced in application code. Note that this means that it is possible to make\r
+ *        compatible code for a board with no LEDs by making a board LED driver (see \ref Page_WritingBoardDrivers)\r
+ *        which contains only stub functions and defines no LEDs.\r
+ *\r
  *  @{\r
  */\r
 \r
@@ -62,7 +71,6 @@
        /* Macros: */\r
        #if !defined(__DOXYGEN__)\r
                #define INCLUDE_FROM_LEDS_H\r
-               #define INCLUDE_FROM_BOARD_DRIVER\r
        #endif\r
        \r
        /* Includes: */\r
                #include "RZUSBSTICK/LEDs.h"\r
        #elif (BOARD == BOARD_ATAVRUSBRF01)\r
                #include "ATAVRUSBRF01/LEDs.h"\r
+       #elif (BOARD == BOARD_XPLAIN)\r
+               #include "XPLAIN/LEDs.h"\r
+       #elif (BOARD == BOARD_XPLAIN_REV1)\r
+               #include "XPLAIN/LEDs.h"\r
+       #elif (BOARD == BOARD_BUMBLEB)\r
+               #include "BUMBLEB/LEDs.h"\r
+       #elif (BOARD == BOARD_EVK527)\r
+               #include "EVK527/LEDs.h"                \r
        #elif (BOARD == BOARD_USER)\r
                #include "Board/LEDs.h"\r
        #endif\r
        \r
+       #if !defined(LEDS_LED1)\r
+               #define LEDS_LED1      0\r
+       #endif\r
+\r
+       #if !defined(LEDS_LED2)\r
+               #define LEDS_LED2      0\r
+       #endif\r
+\r
+       #if !defined(LEDS_LED3)\r
+               #define LEDS_LED3      0\r
+       #endif\r
+\r
+       #if !defined(LEDS_LED4)\r
+               #define LEDS_LED4      0\r
+       #endif\r
+       \r
        /* Pseudo-Functions for Doxygen: */\r
        #if defined(__DOXYGEN__)\r
                /** Initializes the board LED driver so that the LEDs can be controlled. This sets the appropriate port\r
 \r
                /** Turns on the LEDs specified in the given LED mask.\r
                 *\r
-                *  \param LEDMask  Mask of the board LEDs to manipulate (see board-specific LEDs.h driver file)\r
+                *  \param[in] LEDMask  Mask of the board LEDs to manipulate (see board-specific LEDs.h driver file)\r
                 */\r
                static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask);\r
 \r
                /** Turns off the LEDs specified in the given LED mask.\r
                 *\r
-                *  \param LEDMask  Mask of the board LEDs to manipulate (see board-specific LEDs.h driver file)\r
+                *  \param[in] LEDMask  Mask of the board LEDs to manipulate (see board-specific LEDs.h driver file)\r
                 */\r
                static inline void LEDs_TurnOffLEDs(const uint8_t LEDMask);\r
 \r
                /** Turns off all LEDs not specified in the given LED mask, and turns on all the LEDs in the given LED\r
                 *  mask.\r
                 *\r
-                *  \param LEDMask  Mask of the board LEDs to manipulate (see board-specific LEDs.h driver file)\r
+                *  \param[in] LEDMask  Mask of the board LEDs to manipulate (see board-specific LEDs.h driver file)\r
                 */\r
                static inline void LEDs_SetAllLEDs(const uint8_t LEDMask);\r
 \r
                /** Turns off all LEDs in the LED mask that are not set in the active mask, and turns on all the LEDs\r
                 *  specified in both the LED and active masks.\r
                 *\r
-                *  \param LEDMask     Mask of the board LEDs to manipulate (see board-specific LEDs.h driver file)\r
-                *  \param ActiveMask  Mask of whether the LEDs in the LED mask should be turned on or off\r
+                *  \param[in] LEDMask     Mask of the board LEDs to manipulate (see board-specific LEDs.h driver file)\r
+                *  \param[in] ActiveMask  Mask of whether the LEDs in the LED mask should be turned on or off\r
                 */\r
                static inline void LEDs_ChangeLEDs(const uint8_t LEDMask, const uint8_t ActiveMask);\r
+               \r
+               /** Toggles all LEDs in the LED mask, leaving all others in their current states.\r
+                *\r
+                *  \param[in] LEDMask Mask of the board LEDs to manipulate (see board-specific LEDs.h driver file)\r
+                */\r
+               static inline void LEDs_ToggleLEDs(const uint8_t LEDMask);\r
 \r
                /** Returns the status of all the board LEDs; set LED masks in the return value indicate that the\r
                 *  corresponding LED is on.\r