diff options
author | Dean Camera <dean@fourwalledcubicle.com> | 2012-02-05 15:50:09 +0000 |
---|---|---|
committer | Dean Camera <dean@fourwalledcubicle.com> | 2012-02-05 15:50:09 +0000 |
commit | da676f0f705904df15202f34b14c99f279eda339 (patch) | |
tree | 7f11c5551af7527a2ac0d3e3b80b401d52b277eb /LUFA/Drivers | |
parent | 0e8e70153aac9a73f737348cf8b41fd4b71bd2d5 (diff) | |
download | lufa-da676f0f705904df15202f34b14c99f279eda339.tar.gz lufa-da676f0f705904df15202f34b14c99f279eda339.tar.bz2 lufa-da676f0f705904df15202f34b14c99f279eda339.zip |
Add support for the Micropendous (Arduino-like) series of boards (revisions 1 and 2).
Diffstat (limited to 'LUFA/Drivers')
-rw-r--r-- | LUFA/Drivers/Board/AVR8/MICROPENDOUS/Buttons.h | 20 | ||||
-rw-r--r-- | LUFA/Drivers/Board/AVR8/MICROPENDOUS/LEDs.h | 56 | ||||
-rw-r--r-- | LUFA/Drivers/Board/Buttons.h | 1 | ||||
-rw-r--r-- | LUFA/Drivers/Board/LEDs.h | 3 |
4 files changed, 68 insertions, 12 deletions
diff --git a/LUFA/Drivers/Board/AVR8/MICROPENDOUS/Buttons.h b/LUFA/Drivers/Board/AVR8/MICROPENDOUS/Buttons.h index cb426586f..5c5825afb 100644 --- a/LUFA/Drivers/Board/AVR8/MICROPENDOUS/Buttons.h +++ b/LUFA/Drivers/Board/AVR8/MICROPENDOUS/Buttons.h @@ -79,6 +79,20 @@ */
/** \ingroup Group_Buttons
+ * \defgroup Group_Buttons_MICROPENDOUS_REV1 MICROPENDOUS_REV1
+ * \brief Board specific Button driver header for the Micropendous Arduino-like Revision 1 (https://code.google.com/p/micropendous/wiki/Micropendous).
+ *
+ * See \ref Group_Buttons_MICROPENDOUS_32U2 for more details.
+ */
+
+/** \ingroup Group_Buttons
+ * \defgroup Group_Buttons_MICROPENDOUS_REV2 MICROPENDOUS_REV2
+ * \brief Board specific Button driver header for the Micropendous Arduino-like Revision 2 (https://code.google.com/p/micropendous/wiki/Micropendous).
+ *
+ * See \ref Group_Buttons_MICROPENDOUS_32U2 for more details.
+ */
+
+/** \ingroup Group_Buttons
* \defgroup Group_Buttons_MICROPENDOUS_32U2 MICROPENDOUS_32U2
* \brief Board specific Buttons driver header for the Micropendous 32U2.
*
@@ -128,6 +142,12 @@ #elif (BOARD == BOARD_MICROPENDOUS_DIP)
#define _BOARD_BUTTON1_MASK (1 << 2)
#define _BOARD_BUTTON_PORTLETTER E
+ #elif (BOARD == BOARD_MICROPENDOUS_REV1)
+ #define _BOARD_BUTTON1_MASK (1 << 2)
+ #define _BOARD_BUTTON_PORTLETTER E
+ #elif (BOARD == BOARD_MICROPENDOUS_REV2)
+ #define _BOARD_BUTTON1_MASK (1 << 2)
+ #define _BOARD_BUTTON_PORTLETTER E
#endif
#define _BOARD_BUTTON_CONCAT2(Reg, Letter) Reg ## Letter
diff --git a/LUFA/Drivers/Board/AVR8/MICROPENDOUS/LEDs.h b/LUFA/Drivers/Board/AVR8/MICROPENDOUS/LEDs.h index 17a8b9f7a..649d961e9 100644 --- a/LUFA/Drivers/Board/AVR8/MICROPENDOUS/LEDs.h +++ b/LUFA/Drivers/Board/AVR8/MICROPENDOUS/LEDs.h @@ -37,6 +37,20 @@ */ /** \ingroup Group_LEDs + * \defgroup Group_LEDs_MICROPENDOUS_REV1 MICROPENDOUS_REV1 + * \brief Board specific LED driver header for the Micropendous Arduino-like Revision 1 (https://code.google.com/p/micropendous/wiki/Micropendous). + * + * See \ref Group_LEDs_MICROPENDOUS_32U2 for more details. + */ + +/** \ingroup Group_LEDs + * \defgroup Group_LEDs_MICROPENDOUS_REV2 MICROPENDOUS_REV2 + * \brief Board specific LED driver header for the Micropendous Arduino-like Revision 2 (https://code.google.com/p/micropendous/wiki/Micropendous). + * + * See \ref Group_LEDs_MICROPENDOUS_32U2 for more details. + */ + +/** \ingroup Group_LEDs * \defgroup Group_LEDs_MICROPENDOUS_32U2 MICROPENDOUS_32U2 * \brief Board specific LED driver header for the Micropendous 32U2. * @@ -61,10 +75,30 @@ #error Do not include this file directly. Include LUFA/Drivers/Board/LEDS.h instead. #endif + /* Private Interface - For use in library only: */ + #if !defined(__DOXYGEN__) + #if (BOARD == BOARD_MICROPENDOUS_32U2) + #define _BOARD_LED1_MASK (1 << 6) + #define _BOARD_LED_PORTLETTER D + #elif (BOARD == BOARD_MICROPENDOUS_REV1) + #define _BOARD_LED1_MASK (1 << 1) + #define _BOARD_LED_PORTLETTER B + #elif (BOARD == BOARD_MICROPENDOUS_REV2) + #define _BOARD_LED1_MASK (1 << 1) + #define _BOARD_LED_PORTLETTER B + #endif + + #define _BOARD_LED_CONCAT2(Reg, Letter) Reg ## Letter + #define _BOARD_LED_CONCAT(Reg, Letter) _BOARD_LED_CONCAT2(Reg, Letter) + + #define _BOARD_LED_PORT _BOARD_LED_CONCAT(PORT, _BOARD_LED_PORTLETTER) + #define _BOARD_LED_DDR _BOARD_LED_CONCAT(DDR, _BOARD_LED_PORTLETTER) + #endif + /* Public Interface - May be used in end-application: */ /* Macros: */ /** LED mask for the first LED on the board. */ - #define LEDS_LED1 (1 << 6) + #define LEDS_LED1 _BOARD_LED1_MASK /** LED mask for all the LEDs on the board. */ #define LEDS_ALL_LEDS LEDS_LED1 @@ -76,46 +110,46 @@ #if !defined(__DOXYGEN__) static inline void LEDs_Init(void) { - DDRD |= LEDS_ALL_LEDS; - PORTD &= ~LEDS_ALL_LEDS; + _BOARD_LED_DDR |= LEDS_ALL_LEDS; + _BOARD_LED_PORT &= ~LEDS_ALL_LEDS; } static inline void LEDs_Disable(void) { - DDRD &= ~LEDS_ALL_LEDS; - PORTD &= ~LEDS_ALL_LEDS; + _BOARD_LED_DDR &= ~LEDS_ALL_LEDS; + _BOARD_LED_PORT &= ~LEDS_ALL_LEDS; } static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask) { - PORTD |= LEDMask; + _BOARD_LED_PORT |= LEDMask; } static inline void LEDs_TurnOffLEDs(const uint8_t LEDMask) { - PORTD &= ~LEDMask; + _BOARD_LED_PORT &= ~LEDMask; } static inline void LEDs_SetAllLEDs(const uint8_t LEDMask) { - PORTD = ((PORTF & ~LEDS_ALL_LEDS) | LEDMask); + _BOARD_LED_PORT = ((PORTF & ~LEDS_ALL_LEDS) | LEDMask); } static inline void LEDs_ChangeLEDs(const uint8_t LEDMask, const uint8_t ActiveMask) { - PORTD = ((PORTF & ~LEDMask) | ActiveMask); + _BOARD_LED_PORT = ((PORTF & ~LEDMask) | ActiveMask); } static inline void LEDs_ToggleLEDs(const uint8_t LEDMask) { - PORTD ^= LEDMask; + _BOARD_LED_PORT ^= LEDMask; } static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT; static inline uint8_t LEDs_GetLEDs(void) { - return (PORTD & LEDS_ALL_LEDS); + return (_BOARD_LED_PORT & LEDS_ALL_LEDS); } #endif diff --git a/LUFA/Drivers/Board/Buttons.h b/LUFA/Drivers/Board/Buttons.h index 2b430baac..6ea072ccb 100644 --- a/LUFA/Drivers/Board/Buttons.h +++ b/LUFA/Drivers/Board/Buttons.h @@ -138,6 +138,7 @@ #elif ((BOARD == BOARD_MICROPENDOUS_32U2) || (BOARD == BOARD_MICROPENDOUS_A) || \ (BOARD == BOARD_MICROPENDOUS_1) || (BOARD == BOARD_MICROPENDOUS_2) || \ (BOARD == BOARD_MICROPENDOUS_3) || (BOARD == BOARD_MICROPENDOUS_4) || \ + (BOARD == BOARD_MICROPENDOUS_REV1) || (BOARD == BOARD_MICROPENDOUS_REV2) || \ (BOARD == BOARD_MICROPENDOUS_DIP)) #include "AVR8/MICROPENDOUS/Buttons.h" #else diff --git a/LUFA/Drivers/Board/LEDs.h b/LUFA/Drivers/Board/LEDs.h index d1836dad4..94421a2c8 100644 --- a/LUFA/Drivers/Board/LEDs.h +++ b/LUFA/Drivers/Board/LEDs.h @@ -175,7 +175,8 @@ #include "XMEGA/A3BU_XPLAINED/LEDs.h" #elif ((BOARD == BOARD_USB2AX) || (BOARD == BOARD_USB2AX_V3)) #include "AVR8/USB2AX/LEDs.h" - #elif (BOARD == BOARD_MICROPENDOUS_32U2) + #elif ((BOARD == BOARD_MICROPENDOUS_REV1) || (BOARD == BOARD_MICROPENDOUS_REV2) || \ + (BOARD == BOARD_MICROPENDOUS_32U2)) #include "AVR8/MICROPENDOUS/LEDs.h" #else #include "Board/LEDs.h" |