Added support for version 2 of the Teensy boards (thanks to Christoph Redecker).

pull/1469/head
Dean Camera 13 years ago
parent 09577fe541
commit a81ccd83fd

@ -96,7 +96,7 @@
* such as the Joystick driver, where the removal would adversely affect the code's operation is still disallowed. */ * such as the Joystick driver, where the removal would adversely affect the code's operation is still disallowed. */
#define BOARD_NONE 10 #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 #define BOARD_TEENSY 11
/** Selects the USBTINY MKII specific board drivers, including the Button and LEDs drivers. */ /** 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. */ /** Selects the Atmel XMEGA A3BU Xplained specific board drivers, including Dataflash, Button and LED drivers. */
#define BOARD_A3BU_XPLAINED 31 #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__) #if !defined(__DOXYGEN__)
#define BOARD_ BOARD_NONE #define BOARD_ BOARD_NONE

@ -11,6 +11,7 @@
* - Core: * - Core:
* - Added support for the XMEGA A3BU Xplained board * - Added support for the XMEGA A3BU Xplained board
* - Added support for the new B series XMEGA devices * - Added support for the new B series XMEGA devices
* - Added support for version 2 of the Teensy boards (thanks to Christoph Redecker).
* - Library Applications: * - Library Applications:
* - Added User Application APIs to the CDC and DFU class bootloaders * - 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) * - Added INVERTED_ISP_MISO compile time option to the AVRISP-MKII clone project (thanks to Chuck Rohs)

@ -112,7 +112,7 @@
* - Microsin AVR-USB162 * - Microsin AVR-USB162
* - Minimus USB * - Minimus USB
* - Olimex AVR-USB-162 * - Olimex AVR-USB-162
* - PJRC Teensy (all revisions and versions) * - PJRC Teensy (1.x and 2.x versions)
* - Sparkfun U2 Breakout Board * - Sparkfun U2 Breakout Board
* - TCNISO Blackcat USB JTAG * - TCNISO Blackcat USB JTAG
* - Tempusdictum Benito * - Tempusdictum Benito

@ -29,7 +29,7 @@
*/ */
/** \file /** \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 * \copydetails Group_LEDs_TEENSY
* *
* \note This file should not be included directly. It is automatically included as needed by the LEDs driver * \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 /** \ingroup Group_LEDs
* \defgroup Group_LEDs_TEENSY TEENSY * \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 <code>BOARD = TEENSY2</code>.
* *
* Board specific LED driver header for the PJRC Teensy boards (http://www.pjrc.com/teensy/index.html). * 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) static inline void LEDs_Init(void)
{ {
DDRD |= LEDS_ALL_LEDS; 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) static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask)
{ {
#if (BOARD == BOARD_TEENSY2)
PORTD |= LEDMask;
#else
PORTD &= ~LEDMask; PORTD &= ~LEDMask;
#endif
} }
static inline void LEDs_TurnOffLEDs(const uint8_t LEDMask) 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) 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); PORTD = ((PORTD | LEDS_ALL_LEDS) & ~LEDMask);
#endif
} }
static inline void LEDs_ChangeLEDs(const uint8_t LEDMask, static inline void LEDs_ChangeLEDs(const uint8_t LEDMask,
const uint8_t ActiveMask) const uint8_t ActiveMask)
{ {
#if (BOARD == BOARD_TEENSY2)
PORTD = ((PORTD & ~LEDMask) | ActiveMask);
#else
PORTD = ((PORTD | LEDMask) & ~ActiveMask); PORTD = ((PORTD | LEDMask) & ~ActiveMask);
#endif
} }
static inline void LEDs_ToggleLEDs(const uint8_t LEDMask) 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) ATTR_WARN_UNUSED_RESULT;
static inline uint8_t LEDs_GetLEDs(void) static inline uint8_t LEDs_GetLEDs(void)
{ {
#if (BOARD == BOARD_TEENSY2)
return (PORTD & LEDS_ALL_LEDS);
#else
return (~PORTD & LEDS_ALL_LEDS); return (~PORTD & LEDS_ALL_LEDS);
#endif
} }
#endif #endif

@ -29,7 +29,7 @@
*/ */
/** \file /** \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 * \copydetails Group_Dataflash_XPLAIN
* *
* \note This file should not be included directly. It is automatically included as needed by the dataflash driver * \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 /** \ingroup Group_Dataflash
* \defgroup Group_Dataflash_XPLAIN XPLAIN * \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 <code>BOARD = BOARD_XPLAIN_REV1</code>.
* *
* Board specific Dataflash driver header for the Atmel XPLAIN. * Board specific Dataflash driver header for the Atmel XPLAIN.
* *

@ -29,7 +29,7 @@
*/ */
/** \file /** \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 * \copydetails Group_LEDs_XPLAIN
* *
* \note This file should not be included directly. It is automatically included as needed by the LEDs driver * \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 /** \ingroup Group_LEDs
* \defgroup Group_LEDs_XPLAIN XPLAIN * \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. * Board specific LED driver header for the Atmel XPLAIN.
* *

@ -172,7 +172,9 @@
#elif (BOARD == BOARD_EVK1104) #elif (BOARD == BOARD_EVK1104)
#include "UC3/EVK1104/LEDs.h" #include "UC3/EVK1104/LEDs.h"
#elif (BOARD == BOARD_A3BU_XPLAINED) #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 #else
#include "Board/LEDs.h" #include "Board/LEDs.h"
#endif #endif

Loading…
Cancel
Save