* If the BOARD value is set to BOARD_USER, this will include the /Board/LEDs.h file in the user project\r
* directory.\r
*/\r
- \r
+\r
+/** \ingroup Group_BoardDrivers\r
+ * @defgroup Group_LEDs LEDs Driver - LUFA/Drivers/Board/LEDs.h\r
+ *\r
+ * \section Sec_Dependencies Module Source Dependencies\r
+ * The following files must be built with any user project that uses this module:\r
+ * - None\r
+ *\r
+ * \section Module Description\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
#ifndef __LEDS_H__\r
#define __LEDS_H__\r
\r
#include "Board/LEDs.h"\r
#endif\r
\r
- /* Psudo-Functions for Doxygen: */\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
* I/O pins as outputs, and sets the LEDs to default to off.\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
#endif\r
\r
#endif\r
+\r
+/** @} */\r