X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/f1076ac4d6e56bff7fb6d2126746af1108211370..fa1a092901319b3b41bf09e0c4cb9cbbec470d6b:/LUFA/Drivers/Board/LEDs.h diff --git a/LUFA/Drivers/Board/LEDs.h b/LUFA/Drivers/Board/LEDs.h index 969399994..c44612522 100644 --- a/LUFA/Drivers/Board/LEDs.h +++ b/LUFA/Drivers/Board/LEDs.h @@ -1,21 +1,21 @@ /* LUFA Library - Copyright (C) Dean Camera, 2009. + Copyright (C) Dean Camera, 2010. dean [at] fourwalledcubicle [dot] com www.fourwalledcubicle.com */ /* - Copyright 2009 Dean Camera (dean [at] fourwalledcubicle [dot] com) - - Permission to use, copy, modify, and distribute this software - and its documentation for any purpose and without fee is hereby - granted, provided that the above copyright notice appear in all - copies and that both that the copyright notice and this - permission notice and warranty disclaimer appear in supporting - documentation, and that the name of the author not be used in - advertising or publicity pertaining to distribution of the + Copyright 2010 Dean Camera (dean [at] fourwalledcubicle [dot] com) + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that the copyright notice and this + permission notice and warranty disclaimer appear in supporting + documentation, and that the name of the author not be used in + advertising or publicity pertaining to distribution of the software without specific, written prior permission. The author disclaim all warranties with regard to this @@ -29,6 +29,7 @@ */ /** \file + * \brief Master include file for the board LEDs driver. * * This file is the master dispatch header file for the board-specific LED driver, for boards containing user * controllable LEDs. @@ -48,10 +49,12 @@ * - None * * \section Module Description - * Functions, macros, variables, enums and types related to the control of board LEDs. + * Hardware LEDs driver. This provides an easy to use driver for the hardware LEDs present on many boards. It + * provides an interface to configure, test and change the status of all the board LEDs. * * If the BOARD value is set to BOARD_USER, this will include the /Board/Dataflash.h file in the user project - * directory. Otherwise, it will include the appropriate built in board driver header file. + * directory. Otherwise, it will include the appropriate built in board driver header file. If the BOARD value + * is set to BOARD_NONE, this driver is silently disabled. * * \note To make code as compatible as possible, it is assumed that all boards carry a minimum of four LEDs. If * a board contains less than four LEDs, the remaining LED masks are defined to 0 so as to have no effect. @@ -69,15 +72,21 @@ /* Macros: */ #if !defined(__DOXYGEN__) + #define __INCLUDE_FROM_LEDS_H #define INCLUDE_FROM_LEDS_H - #define INCLUDE_FROM_BOARD_DRIVER #endif /* Includes: */ #include "../../Common/Common.h" - #if !defined(BOARD) - #error BOARD must be set in makefile to a value specified in BoardTypes.h. + #if (BOARD == BOARD_NONE) + static inline void LEDs_Init(void) {}; + static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask) {}; + static inline void LEDs_TurnOffLEDs(const uint8_t LEDMask) {}; + static inline void LEDs_SetAllLEDs(const uint8_t LEDMask) {}; + static inline void LEDs_ChangeLEDs(const uint8_t LEDMask, const uint8_t ActiveMask) {}; + static inline void LEDs_ToggleLEDs(const uint8_t LEDMask) {}; + static inline uint8_t LEDs_GetLEDs(void) { return 0; } #elif (BOARD == BOARD_USBKEY) #include "USBKEY/LEDs.h" #elif (BOARD == BOARD_STK525) @@ -88,6 +97,20 @@ #include "RZUSBSTICK/LEDs.h" #elif (BOARD == BOARD_ATAVRUSBRF01) #include "ATAVRUSBRF01/LEDs.h" + #elif ((BOARD == BOARD_XPLAIN) || (BOARD == BOARD_XPLAIN_REV1)) + #include "XPLAIN/LEDs.h" + #elif (BOARD == BOARD_BUMBLEB) + #include "BUMBLEB/LEDs.h" + #elif (BOARD == BOARD_EVK527) + #include "EVK527/LEDs.h" + #elif (BOARD == BOARD_TEENSY) + #include "TEENSY/LEDs.h" + #elif (BOARD == BOARD_USBTINYMKII) + #include "USBTINYMKII/LEDs.h" + #elif (BOARD == BOARD_BENITO) + #include "BENITO/LEDs.h" + #elif (BOARD == BOARD_JMDBU2) + #include "JMDBU2/LEDs.h" #elif (BOARD == BOARD_USER) #include "Board/LEDs.h" #endif @@ -141,6 +164,12 @@ * \param[in] ActiveMask Mask of whether the LEDs in the LED mask should be turned on or off */ static inline void LEDs_ChangeLEDs(const uint8_t LEDMask, const uint8_t ActiveMask); + + /** Toggles all LEDs in the LED mask, leaving all others in their current states. + * + * \param[in] LEDMask Mask of the board LEDs to manipulate (see board-specific LEDs.h driver file) + */ + static inline void LEDs_ToggleLEDs(const uint8_t LEDMask); /** Returns the status of all the board LEDs; set LED masks in the return value indicate that the * corresponding LED is on.