From 3ebfb998ec4eef73543a8e8bde0019a3057b72dc Mon Sep 17 00:00:00 2001 From: Dean Camera Date: Fri, 2 Oct 2009 09:11:37 +0000 Subject: Added support for the Atmel XPLAIN board. --- LUFA.pnproj | 2 +- LUFA/Common/BoardTypes.h | 3 + LUFA/Drivers/Board/Buttons.h | 4 +- LUFA/Drivers/Board/Joystick.h | 4 +- LUFA/Drivers/Board/LEDs.h | 6 +- LUFA/Drivers/Board/XPLAIN/LEDs.h | 121 +++++++++++++++++++++++++++++++++++++++ LUFA/ManPages/DeviceSupport.txt | 1 + 7 files changed, 134 insertions(+), 7 deletions(-) create mode 100644 LUFA/Drivers/Board/XPLAIN/LEDs.h diff --git a/LUFA.pnproj b/LUFA.pnproj index 63e43c194..d7c449ea1 100644 --- a/LUFA.pnproj +++ b/LUFA.pnproj @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/LUFA/Common/BoardTypes.h b/LUFA/Common/BoardTypes.h index 9b3a9cc78..38d0af14c 100644 --- a/LUFA/Common/BoardTypes.h +++ b/LUFA/Common/BoardTypes.h @@ -81,6 +81,9 @@ /** Selects the BUMBLEB specific board drivers, using the officially recommended peripheral layout. */ #define BOARD_BUMBLEB 6 + /** Selects the XPLAIN specific board drivers, including LED driver. */ + #define BOARD_XPLAIN 7 + #endif /** @} */ diff --git a/LUFA/Drivers/Board/Buttons.h b/LUFA/Drivers/Board/Buttons.h index b8c748b57..8b0258104 100644 --- a/LUFA/Drivers/Board/Buttons.h +++ b/LUFA/Drivers/Board/Buttons.h @@ -79,10 +79,10 @@ #include "STK526/Buttons.h" #elif (BOARD == BOARD_ATAVRUSBRF01) #include "ATAVRUSBRF01/Buttons.h" - #elif (BOARD == BOARD_USER) - #include "Board/Buttons.h" #elif (BOARD == BOARD_BUMBLEB) #include "BUMBLEB/Buttons.h" + #elif (BOARD == BOARD_USER) + #include "Board/Buttons.h" #else #error The selected board does not contain any GPIO buttons. #endif diff --git a/LUFA/Drivers/Board/Joystick.h b/LUFA/Drivers/Board/Joystick.h index d67f22f53..082b51559 100644 --- a/LUFA/Drivers/Board/Joystick.h +++ b/LUFA/Drivers/Board/Joystick.h @@ -76,10 +76,10 @@ #include "STK525/Joystick.h" #elif (BOARD == BOARD_STK526) #include "STK526/Joystick.h" - #elif (BOARD == BOARD_USER) - #include "Board/Joystick.h" #elif (BOARD == BOARD_BUMBLEB) #include "BUMBLEB/Joystick.h" + #elif (BOARD == BOARD_USER) + #include "Board/Joystick.h" #else #error The selected board does not contain a joystick. #endif diff --git a/LUFA/Drivers/Board/LEDs.h b/LUFA/Drivers/Board/LEDs.h index 62424777a..dcfa8f49a 100644 --- a/LUFA/Drivers/Board/LEDs.h +++ b/LUFA/Drivers/Board/LEDs.h @@ -88,10 +88,12 @@ #include "RZUSBSTICK/LEDs.h" #elif (BOARD == BOARD_ATAVRUSBRF01) #include "ATAVRUSBRF01/LEDs.h" - #elif (BOARD == BOARD_USER) - #include "Board/LEDs.h" + #elif (BOARD == BOARD_XPLAIN) + #include "XPLAIN/LEDs.h #elif (BOARD == BOARD_BUMBLEB) #include "BUMBLEB/LEDs.h" + #elif (BOARD == BOARD_USER) + #include "Board/LEDs.h" #endif #if !defined(LEDS_LED1) diff --git a/LUFA/Drivers/Board/XPLAIN/LEDs.h b/LUFA/Drivers/Board/XPLAIN/LEDs.h new file mode 100644 index 000000000..77289d9f8 --- /dev/null +++ b/LUFA/Drivers/Board/XPLAIN/LEDs.h @@ -0,0 +1,121 @@ +/* + LUFA Library + Copyright (C) Dean Camera, 2009. + + 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 + software without specific, written prior permission. + + The author disclaim all warranties with regard to this + software, including all implied warranties of merchantability + and fitness. In no event shall the author be liable for any + special, indirect or consequential damages or any damages + whatsoever resulting from loss of use, data or profits, whether + in an action of contract, negligence or other tortious action, + arising out of or in connection with the use or performance of + this software. +*/ + +/** \file + * + * Board specific LED driver header for the XPLAIN. + * + * \note This file should not be included directly. It is automatically included as needed by the LEDs driver + * dispatch header located in LUFA/Drivers/Board/LEDs.h. + */ + +/** \ingroup Group_LEDs + * @defgroup Group_LEDs_XPLAIN XPLAIN + * + * @{ + */ + +#ifndef __LEDS_XPLAIN_H__ +#define __LEDS_XPLAIN_H__ + + /* Includes: */ + #include + + #include "../../../Common/Common.h" + + /* Enable C linkage for C++ Compilers: */ + #if defined(__cplusplus) + extern "C" { + #endif + + /* Preprocessor Checks: */ + #if !defined(INCLUDE_FROM_LEDS_H) + #error Do not include this file directly. Include LUFA/Drivers/Board/LEDS.h instead. + #endif + + /* Public Interface - May be used in end-application: */ + /* Macros: */ + /** LED mask for the first LED on the board. */ + #define LEDS_LED1 (1 << 6) + + /** LED mask for all the LEDs on the board. */ + #define LEDS_ALL_LEDS LEDS_LED1 + + /** LED mask for the none of the board LEDs */ + #define LEDS_NO_LEDS 0 + + /* Inline Functions: */ + #if !defined(__DOXYGEN__) + static inline void LEDs_Init(void) + { + DDRB |= LEDS_ALL_LEDS; + PORTB &= ~LEDS_ALL_LEDS; + } + + static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask) + { + PORTB |= LEDMask; + } + + static inline void LEDs_TurnOffLEDs(const uint8_t LEDMask) + { + PORTB &= ~LEDMask; + } + + static inline void LEDs_SetAllLEDs(const uint8_t LEDMask) + { + PORTB = ((PORTB & ~LEDS_ALL_LEDS) | LEDMask); + } + + static inline void LEDs_ChangeLEDs(const uint8_t LEDMask, const uint8_t ActiveMask) + { + PORTB = ((PORTB & ~(LEDMask & LEDS_ALL_LEDS)) | (ActiveMask & LEDS_ALL_LEDS)); + } + + static inline void LEDs_ToggleLEDs(const uint8_t LEDMask) + { + PORTD = (PORTB ^ (LEDMask & LEDS_ALL_LEDS)); + } + + static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT; + static inline uint8_t LEDs_GetLEDs(void) + { + return (PORTB & LEDS_ALL_LEDS); + } + #endif + + /* Disable C linkage for C++ Compilers: */ + #if defined(__cplusplus) + } + #endif + +#endif + +/** @} */ diff --git a/LUFA/ManPages/DeviceSupport.txt b/LUFA/ManPages/DeviceSupport.txt index bd1b1c4e1..b9793ff78 100644 --- a/LUFA/ManPages/DeviceSupport.txt +++ b/LUFA/ManPages/DeviceSupport.txt @@ -27,6 +27,7 @@ * - STK526 * - RZUSBSTICK * - ATAVRUSBRF01 + * - XPLAIN (AT90USB1287 only) * * Currently supported third-party boards: * - BUMBLEB (using officially recommended peripheral layout) -- cgit v1.2.3