From 3790907f4d302e956bea30a261a72411c98a0d60 Mon Sep 17 00:00:00 2001 From: Dean Camera Date: Tue, 30 Mar 2010 09:08:26 +0000 Subject: Added board hardware driver support for the Benito programmer. --- LUFA.pnproj | 2 +- LUFA/Common/BoardTypes.h | 5 +- LUFA/Drivers/Board/BENITO/LEDs.h | 128 +++++++++++++++++++++++++++++++++++++++ LUFA/Drivers/Board/LEDs.h | 5 +- LUFA/ManPages/ChangeLog.txt | 1 + Projects/Benito/Board/LEDs.h | 110 --------------------------------- Projects/Benito/makefile | 2 +- 7 files changed, 139 insertions(+), 114 deletions(-) create mode 100644 LUFA/Drivers/Board/BENITO/LEDs.h delete mode 100644 Projects/Benito/Board/LEDs.h diff --git a/LUFA.pnproj b/LUFA.pnproj index 1d20f1023..313360439 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 50c397d63..e1988e7b9 100644 --- a/LUFA/Common/BoardTypes.h +++ b/LUFA/Common/BoardTypes.h @@ -98,9 +98,12 @@ /** Selects the Teensy (all versions) specific board drivers, including the driver for the board LEDs. */ #define BOARD_TEENSY 11 - /** Selects the USBTINY MKII specific board drivers, , including the driver for the board LEDs. */ + /** Selects the USBTINY MKII specific board drivers, including the driver for the board LEDs. */ #define BOARD_USBTINYMKII 12 + /** Selects the Benito specific board drivers, including the driver for the board LEDs. */ + #define BOARD_BENITO 13 + #if !defined(__DOXYGEN__) #define BOARD_ BOARD_NONE diff --git a/LUFA/Drivers/Board/BENITO/LEDs.h b/LUFA/Drivers/Board/BENITO/LEDs.h new file mode 100644 index 000000000..9139d9267 --- /dev/null +++ b/LUFA/Drivers/Board/BENITO/LEDs.h @@ -0,0 +1,128 @@ +/* + LUFA Library + Copyright (C) Dean Camera, 2010. + + dean [at] fourwalledcubicle [dot] com + www.fourwalledcubicle.com +*/ + +/* + 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 + 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 + * \brief Board specific LED driver header for the Benito. + * + * Board specific LED driver header for the Benito (http://dorkbotpdx.org/wiki/benito). + * + * \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_BENITO BENITO + * + * Board specific LED driver header for the Benito (http://dorkbotpdx.org/wiki/benito). + * + * \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. + * + * @{ + */ + +#ifndef __LEDS_BENITO_H__ +#define __LEDS_BENITO_H__ + + /* Includes: */ + #include + +/* 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 << 7) + + /** LED mask for the second LED on the board. */ + #define LEDS_LED2 (1 << 6) + + /** LED mask for all the LEDs on the board. */ + #define LEDS_ALL_LEDS (LEDS_LED1 | LEDS_LED2) + + /** 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) + { + DDRC |= LEDS_ALL_LEDS; + PORTC |= LEDS_ALL_LEDS; + } + + static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask) + { + PORTC &= ~LEDMask; + } + + static inline void LEDs_TurnOffLEDs(const uint8_t LEDMask) + { + PORTC |= LEDMask; + } + + static inline void LEDs_SetAllLEDs(const uint8_t LEDMask) + { + PORTC = ((PORTC | LEDS_ALL_LEDS) & ~LEDMask); + } + + static inline void LEDs_ChangeLEDs(const uint8_t LEDMask, const uint8_t ActiveMask) + { + PORTC = ((PORTC | ActiveMask) & ~LEDMask); + } + + static inline void LEDs_ToggleLEDs(const uint8_t LEDMask) + { + PORTC ^= LEDMask; + } + + static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT; + static inline uint8_t LEDs_GetLEDs(void) + { + return (PORTC & LEDS_ALL_LEDS); + } + #endif + + /* Disable C linkage for C++ Compilers: */ + #if defined(__cplusplus) + } + #endif + +#endif + +/** @} */ diff --git a/LUFA/Drivers/Board/LEDs.h b/LUFA/Drivers/Board/LEDs.h index 9d470a700..884aa7dab 100644 --- a/LUFA/Drivers/Board/LEDs.h +++ b/LUFA/Drivers/Board/LEDs.h @@ -53,7 +53,8 @@ * 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. @@ -106,6 +107,8 @@ #include "TEENSY/LEDs.h" #elif (BOARD == BOARD_USBTINYMKII) #include "USBTINYMKII/LEDs.h" + #elif (BOARD == BOARD_BENITO) + #include "BENITO/LEDs.h" #elif (BOARD == BOARD_USER) #include "Board/LEDs.h" #endif diff --git a/LUFA/ManPages/ChangeLog.txt b/LUFA/ManPages/ChangeLog.txt index 53268882e..0dd049761 100644 --- a/LUFA/ManPages/ChangeLog.txt +++ b/LUFA/ManPages/ChangeLog.txt @@ -13,6 +13,7 @@ * - Added board hardware driver support for the PJRC Teensy line of USB AVR boards * - Added new Relay Controller Board project (thanks to OBinou) * - Added board hardware driver support for Tom's USBTINY MKII programmer + * - Added board hardware driver support for the Benito programmer * * Changed: * - AVRISP programmer project now has a more robust timeout system, allowing for an increase of the software USART speed diff --git a/Projects/Benito/Board/LEDs.h b/Projects/Benito/Board/LEDs.h deleted file mode 100644 index 0b09a2c07..000000000 --- a/Projects/Benito/Board/LEDs.h +++ /dev/null @@ -1,110 +0,0 @@ -/* - LUFA Library - Copyright (C) Dean Camera, 2010. - - dean [at] fourwalledcubicle [dot] com - www.fourwalledcubicle.com -*/ - -/* - 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 - 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. -*/ - -/* - Board LEDs driver for the Benito board, from www.dorkbotpdx.org. -*/ - -#ifndef __LEDS_BENITO_H__ -#define __LEDS_BENITO_H__ - - /* Includes: */ - #include - -/* 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 << 7) - - /** LED mask for the second LED on the board. */ - #define LEDS_LED2 (1 << 6) - - /** LED mask for all the LEDs on the board. */ - #define LEDS_ALL_LEDS (LEDS_LED1 | LEDS_LED2) - - /** 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) - { - DDRC |= LEDS_ALL_LEDS; - PORTC |= LEDS_ALL_LEDS; - } - - static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask) - { - PORTC &= ~LEDMask; - } - - static inline void LEDs_TurnOffLEDs(const uint8_t LEDMask) - { - PORTC |= LEDMask; - } - - static inline void LEDs_SetAllLEDs(const uint8_t LEDMask) - { - PORTC = ((PORTC | LEDS_ALL_LEDS) & ~LEDMask); - } - - static inline void LEDs_ChangeLEDs(const uint8_t LEDMask, const uint8_t ActiveMask) - { - PORTC = ((PORTC | ActiveMask) & ~LEDMask); - } - - static inline void LEDs_ToggleLEDs(const uint8_t LEDMask) - { - PORTC ^= LEDMask; - } - - static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT; - static inline uint8_t LEDs_GetLEDs(void) - { - return (PORTC & LEDS_ALL_LEDS); - } - #endif - - /* Disable C linkage for C++ Compilers: */ - #if defined(__cplusplus) - } - #endif - -#endif diff --git a/Projects/Benito/makefile b/Projects/Benito/makefile index 8b9d126a9..2f735540a 100644 --- a/Projects/Benito/makefile +++ b/Projects/Benito/makefile @@ -66,7 +66,7 @@ MCU = atmega32u2 # Target board (see library "Board Types" documentation, NONE for projects not requiring # LUFA board drivers). If USER is selected, put custom board drivers in a directory called # "Board" inside the application directory. -BOARD = USER +BOARD = BENITO # Processor frequency. -- cgit v1.2.3