From a81ccd83fd3c0bd30909d9faa3a62a4ce3cd4f68 Mon Sep 17 00:00:00 2001 From: Dean Camera Date: Wed, 23 Nov 2011 00:15:58 +0000 Subject: Added support for version 2 of the Teensy boards (thanks to Christoph Redecker). --- LUFA/Common/BoardTypes.h | 5 ++++- LUFA/DoxygenPages/ChangeLog.txt | 1 + LUFA/DoxygenPages/DeviceSupport.txt | 2 +- LUFA/Drivers/Board/AVR8/TEENSY/LEDs.h | 35 ++++++++++++++++++++++++++---- LUFA/Drivers/Board/AVR8/XPLAIN/Dataflash.h | 6 +++-- LUFA/Drivers/Board/AVR8/XPLAIN/LEDs.h | 4 ++-- LUFA/Drivers/Board/LEDs.h | 4 +++- 7 files changed, 46 insertions(+), 11 deletions(-) diff --git a/LUFA/Common/BoardTypes.h b/LUFA/Common/BoardTypes.h index efd80f9fa..3bb9e5aa9 100644 --- a/LUFA/Common/BoardTypes.h +++ b/LUFA/Common/BoardTypes.h @@ -96,7 +96,7 @@ * such as the Joystick driver, where the removal would adversely affect the code's operation is still disallowed. */ #define BOARD_NONE 10 - /** Selects the Teensy (all versions) specific board drivers, including the driver for the board LEDs. */ + /** Selects the Teensy version 1.x specific board drivers, including the driver for the board LEDs. */ #define BOARD_TEENSY 11 /** Selects the USBTINY MKII specific board drivers, including the Button and LEDs drivers. */ @@ -159,6 +159,9 @@ /** Selects the Atmel XMEGA A3BU Xplained specific board drivers, including Dataflash, Button and LED drivers. */ #define BOARD_A3BU_XPLAINED 31 + /** Selects the Teensy version 2.x specific board drivers, including the driver for the board LEDs. */ + #define BOARD_TEENSY 32 + #if !defined(__DOXYGEN__) #define BOARD_ BOARD_NONE diff --git a/LUFA/DoxygenPages/ChangeLog.txt b/LUFA/DoxygenPages/ChangeLog.txt index 26b07df33..fc843089f 100644 --- a/LUFA/DoxygenPages/ChangeLog.txt +++ b/LUFA/DoxygenPages/ChangeLog.txt @@ -11,6 +11,7 @@ * - Core: * - Added support for the XMEGA A3BU Xplained board * - Added support for the new B series XMEGA devices + * - Added support for version 2 of the Teensy boards (thanks to Christoph Redecker). * - Library Applications: * - Added User Application APIs to the CDC and DFU class bootloaders * - Added INVERTED_ISP_MISO compile time option to the AVRISP-MKII clone project (thanks to Chuck Rohs) diff --git a/LUFA/DoxygenPages/DeviceSupport.txt b/LUFA/DoxygenPages/DeviceSupport.txt index f6fee85f8..66de21072 100644 --- a/LUFA/DoxygenPages/DeviceSupport.txt +++ b/LUFA/DoxygenPages/DeviceSupport.txt @@ -112,7 +112,7 @@ * - Microsin AVR-USB162 * - Minimus USB * - Olimex AVR-USB-162 - * - PJRC Teensy (all revisions and versions) + * - PJRC Teensy (1.x and 2.x versions) * - Sparkfun U2 Breakout Board * - TCNISO Blackcat USB JTAG * - Tempusdictum Benito diff --git a/LUFA/Drivers/Board/AVR8/TEENSY/LEDs.h b/LUFA/Drivers/Board/AVR8/TEENSY/LEDs.h index 01818756f..c01675307 100644 --- a/LUFA/Drivers/Board/AVR8/TEENSY/LEDs.h +++ b/LUFA/Drivers/Board/AVR8/TEENSY/LEDs.h @@ -29,7 +29,7 @@ */ /** \file - * \brief Board specific LED driver header for the PJRC Teensy boards. + * \brief Board specific LED driver header for the PJRC Teensy 1.x/2.x boards. * \copydetails Group_LEDs_TEENSY * * \note This file should not be included directly. It is automatically included as needed by the LEDs driver @@ -38,7 +38,9 @@ /** \ingroup Group_LEDs * \defgroup Group_LEDs_TEENSY TEENSY - * \brief Board specific LED driver header for the PJRC Teensy boards. + * \brief Board specific LED driver header for the PJRC Teensy 1.x/2.x boards. + * + * \note For version 2 Teensy boards, compile with BOARD = TEENSY2. * * Board specific LED driver header for the PJRC Teensy boards (http://www.pjrc.com/teensy/index.html). * @@ -77,28 +79,49 @@ static inline void LEDs_Init(void) { DDRD |= LEDS_ALL_LEDS; - PORTD |= LEDS_ALL_LEDS; + + #if (BOARD == BOARD_TEENSY2) + PORTD &= ~LEDS_ALL_LEDS; + #else + PORTD |= LEDS_ALL_LEDS; + #endif } static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask) { + #if (BOARD == BOARD_TEENSY2) + PORTD |= LEDMask; + #else PORTD &= ~LEDMask; + #endif } static inline void LEDs_TurnOffLEDs(const uint8_t LEDMask) { - PORTD |= LEDMask; + #if (BOARD == BOARD_TEENSY2) + PORTD &= ~LEDMask; + #else + PORTD |= LEDMask; + #endif } static inline void LEDs_SetAllLEDs(const uint8_t LEDMask) { + #if (BOARD == BOARD_TEENSY2) + PORTD = ((PORTD & ~LEDS_ALL_LEDS) | LEDMask); + #else PORTD = ((PORTD | LEDS_ALL_LEDS) & ~LEDMask); + #endif } static inline void LEDs_ChangeLEDs(const uint8_t LEDMask, const uint8_t ActiveMask) { + #if (BOARD == BOARD_TEENSY2) + PORTD = ((PORTD & ~LEDMask) | ActiveMask); + #else PORTD = ((PORTD | LEDMask) & ~ActiveMask); + #endif } static inline void LEDs_ToggleLEDs(const uint8_t LEDMask) @@ -109,7 +132,11 @@ static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT; static inline uint8_t LEDs_GetLEDs(void) { + #if (BOARD == BOARD_TEENSY2) + return (PORTD & LEDS_ALL_LEDS); + #else return (~PORTD & LEDS_ALL_LEDS); + #endif } #endif diff --git a/LUFA/Drivers/Board/AVR8/XPLAIN/Dataflash.h b/LUFA/Drivers/Board/AVR8/XPLAIN/Dataflash.h index 71ff72b15..8b65e6238 100644 --- a/LUFA/Drivers/Board/AVR8/XPLAIN/Dataflash.h +++ b/LUFA/Drivers/Board/AVR8/XPLAIN/Dataflash.h @@ -29,7 +29,7 @@ */ /** \file - * \brief Board specific Dataflash driver header for the Atmel XPLAIN. + * \brief Board specific Dataflash driver header for the original Atmel XPLAIN. * \copydetails Group_Dataflash_XPLAIN * * \note This file should not be included directly. It is automatically included as needed by the dataflash driver @@ -38,7 +38,9 @@ /** \ingroup Group_Dataflash * \defgroup Group_Dataflash_XPLAIN XPLAIN - * \brief Board specific Dataflash driver header for the Atmel XPLAIN. + * \brief Board specific Dataflash driver header for the original Atmel XPLAIN. + * + * \note For the first revision XPLAIN board, compile with BOARD = BOARD_XPLAIN_REV1. * * Board specific Dataflash driver header for the Atmel XPLAIN. * diff --git a/LUFA/Drivers/Board/AVR8/XPLAIN/LEDs.h b/LUFA/Drivers/Board/AVR8/XPLAIN/LEDs.h index d00bbb6a9..0eb11d978 100644 --- a/LUFA/Drivers/Board/AVR8/XPLAIN/LEDs.h +++ b/LUFA/Drivers/Board/AVR8/XPLAIN/LEDs.h @@ -29,7 +29,7 @@ */ /** \file - * \brief Board specific LED driver header for the Atmel XPLAIN. + * \brief Board specific LED driver header for the original Atmel XPLAIN. * \copydetails Group_LEDs_XPLAIN * * \note This file should not be included directly. It is automatically included as needed by the LEDs driver @@ -38,7 +38,7 @@ /** \ingroup Group_LEDs * \defgroup Group_LEDs_XPLAIN XPLAIN - * \brief Board specific LED driver header for the Atmel XPLAIN. + * \brief Board specific LED driver header for the original Atmel XPLAIN. * * Board specific LED driver header for the Atmel XPLAIN. * diff --git a/LUFA/Drivers/Board/LEDs.h b/LUFA/Drivers/Board/LEDs.h index 5ac361a72..eec9991eb 100644 --- a/LUFA/Drivers/Board/LEDs.h +++ b/LUFA/Drivers/Board/LEDs.h @@ -172,7 +172,9 @@ #elif (BOARD == BOARD_EVK1104) #include "UC3/EVK1104/LEDs.h" #elif (BOARD == BOARD_A3BU_XPLAINED) - #include "XMEGA/A3BU_XPLAINED/LEDs.h" + #include "XMEGA/A3BU_XPLAINED/LEDs.h" + #elif (BOARD == BOARD_TEENSY2) + #include "AVR8/TEENSY/LEDs.h" #else #include "Board/LEDs.h" #endif -- cgit v1.2.3