From f11f69fd2989899b3088ea7d11b981f2d68c05e0 Mon Sep 17 00:00:00 2001 From: Dean Camera Date: Tue, 5 May 2009 14:02:02 +0000 Subject: Fixed missing semicolon in the ATAVRUSBRF01 LED board driver code, changed LED board driver code to define dummy LED masks for the first four board LEDs so that user code can be compiled for boards with less than four LEDs without code modifications (thanks to Morten Lund). --- LUFA/ChangeLog.txt | 3 +++ LUFA/Drivers/Board/ATAVRUSBRF01/LEDs.h | 2 +- LUFA/Drivers/Board/LEDs.h | 24 ++++++++++++++++++++++++ 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/LUFA/ChangeLog.txt b/LUFA/ChangeLog.txt index 2c40ba8e3..d538e35fd 100644 --- a/LUFA/ChangeLog.txt +++ b/LUFA/ChangeLog.txt @@ -74,6 +74,9 @@ * - Fixed reversed signature byte ordering in the CDC bootloader (thanks to Johannes Raschke) * - Changed PIPE_CONTROLPIPE_DEFAULT_SIZE from 8 to 64 to try to prevent problems with faulty devices which do not respect the given * wLength value when reading in the device descriptor + * - Fixed missing semicolon in the ATAVRUSBRF01 LED board driver code (thanks to Morten Lund) + * - Changed LED board driver code to define dummy LED masks for the first four board LEDs, so that user code can be compiled for boards + * with less than four LEDs without code modifications (thanks to Morten Lund) * * * \section Sec_ChangeLog090401 Version 090401 diff --git a/LUFA/Drivers/Board/ATAVRUSBRF01/LEDs.h b/LUFA/Drivers/Board/ATAVRUSBRF01/LEDs.h index a073d2ef5..9f808279a 100644 --- a/LUFA/Drivers/Board/ATAVRUSBRF01/LEDs.h +++ b/LUFA/Drivers/Board/ATAVRUSBRF01/LEDs.h @@ -108,7 +108,7 @@ static inline void LEDs_ChangeLEDs(const uint8_t LEDMask, const uint8_t ActiveMask) { - PORTD = (PORTD & ~(LEDMask & LEDS_ALL_LEDS)) | (ActiveMask & LEDS_ALL_LEDS)) + PORTD = ((PORTD & ~(LEDMask & LEDS_ALL_LEDS)) | (ActiveMask & LEDS_ALL_LEDS)); } static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT; diff --git a/LUFA/Drivers/Board/LEDs.h b/LUFA/Drivers/Board/LEDs.h index 1874dfde3..f65e67c81 100644 --- a/LUFA/Drivers/Board/LEDs.h +++ b/LUFA/Drivers/Board/LEDs.h @@ -53,6 +53,14 @@ * 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. * + * \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. + * If other behaviour is desired, either alias the remaining LED masks to existing LED masks via the -D + * switch in the project makefile, or alias them to nothing in the makefile to cause compilation errors when + * a non-existing LED is referenced in application code. Note that this means that it is possible to make + * compatible code for a board with no LEDs by making a board LED driver (see \ref Page_WritingBoardDrivers) + * which contains only stub functions and defines no LEDs. + * * @{ */ @@ -84,6 +92,22 @@ #include "Board/LEDs.h" #endif + #if !defined(LEDS_LED1) + #define LEDS_LED1 0 + #endif + + #if !defined(LEDS_LED2) + #define LEDS_LED2 0 + #endif + + #if !defined(LEDS_LED3) + #define LEDS_LED3 0 + #endif + + #if !defined(LEDS_LED4) + #define LEDS_LED4 0 + #endif + /* Pseudo-Functions for Doxygen: */ #if defined(__DOXYGEN__) /** Initializes the board LED driver so that the LEDs can be controlled. This sets the appropriate port -- cgit v1.2.3