mirror of
https://github.com/qmk/qmk_firmware.git
synced 2025-07-16 12:51:47 +00:00
Added missing LEDs to the XMEGA A3BU Xplained and XMEGA C3 Xplained board LED drivers
This commit is contained in:
parent
94b43e2f9d
commit
16037433a2
@ -23,6 +23,7 @@
|
|||||||
* - Updated the BUILD build system module to produce binary BIN files in addition to Intel HEX files
|
* - Updated the BUILD build system module to produce binary BIN files in addition to Intel HEX files
|
||||||
* - Updated the Android Accessory Class to accept version 2 protocol devices (with version 1 functionality)
|
* - Updated the Android Accessory Class to accept version 2 protocol devices (with version 1 functionality)
|
||||||
* - All board drivers now implement dummy functions and constants when BOARD is set to NONE
|
* - All board drivers now implement dummy functions and constants when BOARD is set to NONE
|
||||||
|
* - Added missing LEDs to the XMEGA A3BU Xplained board LED driver (thanks to Michael Janssen)
|
||||||
*
|
*
|
||||||
* <b>Fixed:</b>
|
* <b>Fixed:</b>
|
||||||
* - Core:
|
* - Core:
|
||||||
|
@ -46,6 +46,8 @@
|
|||||||
* <tr><th>Name</th><th>Color</th><th>Info</th><th>Active Level</th><th>Port Pin</th></tr>
|
* <tr><th>Name</th><th>Color</th><th>Info</th><th>Active Level</th><th>Port Pin</th></tr>
|
||||||
* <tr><td>LEDS_LED1</td><td>Yellow</td><td>LED0 LED</td><td>Low</td><td>PORTR.0</td></tr>
|
* <tr><td>LEDS_LED1</td><td>Yellow</td><td>LED0 LED</td><td>Low</td><td>PORTR.0</td></tr>
|
||||||
* <tr><td>LEDS_LED2</td><td>Yellow</td><td>LED1 LED</td><td>Low</td><td>PORTR.1</td></tr>
|
* <tr><td>LEDS_LED2</td><td>Yellow</td><td>LED1 LED</td><td>Low</td><td>PORTR.1</td></tr>
|
||||||
|
* <tr><td>LEDS_LED3</td><td>Red</td><td>Status Bicolour Red LED</td><td>Low</td><td>PORTD.4</td></tr>
|
||||||
|
* <tr><td>LEDS_LED4</td><td>Green</td><td>Status Bicolour Green LED</td><td>High</td><td>PORTD.5</td></tr>
|
||||||
* </table>
|
* </table>
|
||||||
*
|
*
|
||||||
* @{
|
* @{
|
||||||
@ -67,6 +69,13 @@
|
|||||||
#error Do not include this file directly. Include LUFA/Drivers/Board/LEDS.h instead.
|
#error Do not include this file directly. Include LUFA/Drivers/Board/LEDS.h instead.
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* Private Interface - For use in library only: */
|
||||||
|
#if !defined(__DOXYGEN__)
|
||||||
|
/* Macros: */
|
||||||
|
#define LEDS_PORTR_LEDS (LEDS_LED1 | LEDS_LED2)
|
||||||
|
#define LEDS_PORTD_LEDS (LEDS_LED3 | LEDS_LED4)
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Public Interface - May be used in end-application: */
|
/* Public Interface - May be used in end-application: */
|
||||||
/* Macros: */
|
/* Macros: */
|
||||||
/** LED mask for the first LED on the board. */
|
/** LED mask for the first LED on the board. */
|
||||||
@ -75,8 +84,14 @@
|
|||||||
/** LED mask for the second LED on the board. */
|
/** LED mask for the second LED on the board. */
|
||||||
#define LEDS_LED2 (1 << 1)
|
#define LEDS_LED2 (1 << 1)
|
||||||
|
|
||||||
|
/** LED mask for the third LED on the board. */
|
||||||
|
#define LEDS_LED3 (1 << 4)
|
||||||
|
|
||||||
|
/** LED mask for the fourth LED on the board. */
|
||||||
|
#define LEDS_LED4 (1 << 5)
|
||||||
|
|
||||||
/** LED mask for all the LEDs on the board. */
|
/** LED mask for all the LEDs on the board. */
|
||||||
#define LEDS_ALL_LEDS (LEDS_LED1 | LEDS_LED2)
|
#define LEDS_ALL_LEDS (LEDS_LED1 | LEDS_LED2 | LEDS_LED3 | LEDS_LED4)
|
||||||
|
|
||||||
/** LED mask for none of the board LEDs. */
|
/** LED mask for none of the board LEDs. */
|
||||||
#define LEDS_NO_LEDS 0
|
#define LEDS_NO_LEDS 0
|
||||||
@ -85,51 +100,66 @@
|
|||||||
#if !defined(__DOXYGEN__)
|
#if !defined(__DOXYGEN__)
|
||||||
static inline void LEDs_Init(void)
|
static inline void LEDs_Init(void)
|
||||||
{
|
{
|
||||||
PORTR.DIRSET = LEDS_ALL_LEDS;
|
PORTR.DIRSET = LEDS_PORTR_LEDS;
|
||||||
PORTR.OUTCLR = LEDS_ALL_LEDS;
|
PORTR.OUTCLR = LEDS_PORTR_LEDS;
|
||||||
|
|
||||||
PORTCFG.MPCMASK = LEDS_ALL_LEDS;
|
PORTCFG.MPCMASK = LEDS_PORTR_LEDS;
|
||||||
PORTR.PIN0CTRL = PORT_INVEN_bm;
|
PORTR.PIN0CTRL = PORT_INVEN_bm;
|
||||||
|
|
||||||
|
PORTD.DIRSET = LEDS_PORTD_LEDS;
|
||||||
|
PORTD.OUTCLR = LEDS_PORTD_LEDS;
|
||||||
|
|
||||||
|
PORTD.PIN4CTRL = PORT_INVEN_bm;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void LEDs_Disable(void)
|
static inline void LEDs_Disable(void)
|
||||||
{
|
{
|
||||||
PORTR.DIRCLR = LEDS_ALL_LEDS;
|
PORTR.DIRCLR = LEDS_PORTR_LEDS;
|
||||||
PORTR.OUTCLR = LEDS_ALL_LEDS;
|
PORTR.OUTCLR = LEDS_PORTR_LEDS;
|
||||||
|
|
||||||
PORTCFG.MPCMASK = 0;
|
PORTCFG.MPCMASK = 0;
|
||||||
PORTR.PIN0CTRL = LEDS_ALL_LEDS;
|
PORTR.PIN0CTRL = LEDS_PORTR_LEDS;
|
||||||
|
|
||||||
|
PORTD.DIRCLR = LEDS_PORTD_LEDS;
|
||||||
|
PORTD.OUTCLR = LEDS_PORTD_LEDS;
|
||||||
|
|
||||||
|
PORTD.PIN4CTRL = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask)
|
static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask)
|
||||||
{
|
{
|
||||||
PORTR_OUTSET = LEDMask;
|
PORTR_OUTSET = LEDMask & LEDS_PORTR_LEDS;
|
||||||
|
PORTD_OUTSET = LEDMask & LEDS_PORTD_LEDS;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void LEDs_TurnOffLEDs(const uint8_t LEDMask)
|
static inline void LEDs_TurnOffLEDs(const uint8_t LEDMask)
|
||||||
{
|
{
|
||||||
PORTR_OUTCLR = LEDMask;
|
PORTR_OUTCLR = LEDMask & LEDS_PORTR_LEDS;
|
||||||
|
PORTD_OUTCLR = LEDMask & LEDS_PORTD_LEDS;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void LEDs_SetAllLEDs(const uint8_t LEDMask)
|
static inline void LEDs_SetAllLEDs(const uint8_t LEDMask)
|
||||||
{
|
{
|
||||||
PORTR_OUT = (PORTR.OUT & ~LEDS_ALL_LEDS) | LEDMask;
|
PORTR_OUT = ((PORTR.OUT & ~LEDS_PORTR_LEDS) | (LEDMask & LEDS_PORTR_LEDS));
|
||||||
|
PORTD_OUT = ((PORTD.OUT & ~LEDS_PORTD_LEDS) | (LEDMask & LEDS_PORTD_LEDS));
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void LEDs_ChangeLEDs(const uint8_t LEDMask, const uint8_t ActiveMask)
|
static inline void LEDs_ChangeLEDs(const uint8_t LEDMask, const uint8_t ActiveMask)
|
||||||
{
|
{
|
||||||
PORTR_OUT = (PORTR.OUT & ~LEDMask) | ActiveMask;
|
PORTR_OUT = (PORTR.OUT & ~(LEDMask & LEDS_PORTR_LEDS)) | (Active & LEDS_PORTR_LEDS);
|
||||||
|
PORTD_OUT = (PORTD.OUT & ~(LEDMask & LEDS_PORTD_LEDS)) | (Active & LEDS_PORTD_LEDS);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)
|
static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)
|
||||||
{
|
{
|
||||||
PORTR_OUTTGL = LEDMask;
|
PORTR_OUTTGL = (LEDMask & LEDS_PORTR_LEDS);
|
||||||
|
PORTD_OUTTGL = (LEDMask & LEDS_PORTD_LEDS);
|
||||||
}
|
}
|
||||||
|
|
||||||
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)
|
||||||
{
|
{
|
||||||
return (PORTR_OUT & LEDS_ALL_LEDS);
|
return ((PORTR_OUT & LEDS_PORTR_LEDS) | (PORTD_OUT & LEDS_PORTD_LEDS));
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -46,6 +46,8 @@
|
|||||||
* <tr><th>Name</th><th>Color</th><th>Info</th><th>Active Level</th><th>Port Pin</th></tr>
|
* <tr><th>Name</th><th>Color</th><th>Info</th><th>Active Level</th><th>Port Pin</th></tr>
|
||||||
* <tr><td>LEDS_LED1</td><td>Yellow</td><td>LED0 LED</td><td>Low</td><td>PORTR.0</td></tr>
|
* <tr><td>LEDS_LED1</td><td>Yellow</td><td>LED0 LED</td><td>Low</td><td>PORTR.0</td></tr>
|
||||||
* <tr><td>LEDS_LED2</td><td>Yellow</td><td>LED1 LED</td><td>Low</td><td>PORTR.1</td></tr>
|
* <tr><td>LEDS_LED2</td><td>Yellow</td><td>LED1 LED</td><td>Low</td><td>PORTR.1</td></tr>
|
||||||
|
* <tr><td>LEDS_LED3</td><td>Red</td><td>Status Bicolour Red LED</td><td>Low</td><td>PORTD.4</td></tr>
|
||||||
|
* <tr><td>LEDS_LED4</td><td>Green</td><td>Status Bicolour Green LED</td><td>High</td><td>PORTD.5</td></tr>
|
||||||
* </table>
|
* </table>
|
||||||
*
|
*
|
||||||
* @{
|
* @{
|
||||||
@ -67,6 +69,13 @@
|
|||||||
#error Do not include this file directly. Include LUFA/Drivers/Board/LEDS.h instead.
|
#error Do not include this file directly. Include LUFA/Drivers/Board/LEDS.h instead.
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* Private Interface - For use in library only: */
|
||||||
|
#if !defined(__DOXYGEN__)
|
||||||
|
/* Macros: */
|
||||||
|
#define LEDS_PORTR_LEDS (LEDS_LED1 | LEDS_LED2)
|
||||||
|
#define LEDS_PORTD_LEDS (LEDS_LED3 | LEDS_LED4)
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Public Interface - May be used in end-application: */
|
/* Public Interface - May be used in end-application: */
|
||||||
/* Macros: */
|
/* Macros: */
|
||||||
/** LED mask for the first LED on the board. */
|
/** LED mask for the first LED on the board. */
|
||||||
@ -75,8 +84,14 @@
|
|||||||
/** LED mask for the second LED on the board. */
|
/** LED mask for the second LED on the board. */
|
||||||
#define LEDS_LED2 (1 << 1)
|
#define LEDS_LED2 (1 << 1)
|
||||||
|
|
||||||
|
/** LED mask for the third LED on the board. */
|
||||||
|
#define LEDS_LED3 (1 << 4)
|
||||||
|
|
||||||
|
/** LED mask for the fourth LED on the board. */
|
||||||
|
#define LEDS_LED4 (1 << 5)
|
||||||
|
|
||||||
/** LED mask for all the LEDs on the board. */
|
/** LED mask for all the LEDs on the board. */
|
||||||
#define LEDS_ALL_LEDS (LEDS_LED1 | LEDS_LED2)
|
#define LEDS_ALL_LEDS (LEDS_LED1 | LEDS_LED2 | LEDS_LED3 | LEDS_LED4)
|
||||||
|
|
||||||
/** LED mask for none of the board LEDs. */
|
/** LED mask for none of the board LEDs. */
|
||||||
#define LEDS_NO_LEDS 0
|
#define LEDS_NO_LEDS 0
|
||||||
@ -85,51 +100,66 @@
|
|||||||
#if !defined(__DOXYGEN__)
|
#if !defined(__DOXYGEN__)
|
||||||
static inline void LEDs_Init(void)
|
static inline void LEDs_Init(void)
|
||||||
{
|
{
|
||||||
PORTR.DIRSET = LEDS_ALL_LEDS;
|
PORTR.DIRSET = LEDS_PORTR_LEDS;
|
||||||
PORTR.OUTCLR = LEDS_ALL_LEDS;
|
PORTR.OUTCLR = LEDS_PORTR_LEDS;
|
||||||
|
|
||||||
PORTCFG.MPCMASK = LEDS_ALL_LEDS;
|
PORTCFG.MPCMASK = LEDS_PORTR_LEDS;
|
||||||
PORTR.PIN0CTRL = PORT_INVEN_bm;
|
PORTR.PIN0CTRL = PORT_INVEN_bm;
|
||||||
|
|
||||||
|
PORTD.DIRSET = LEDS_PORTD_LEDS;
|
||||||
|
PORTD.OUTCLR = LEDS_PORTD_LEDS;
|
||||||
|
|
||||||
|
PORTD.PIN4CTRL = PORT_INVEN_bm;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void LEDs_Disable(void)
|
static inline void LEDs_Disable(void)
|
||||||
{
|
{
|
||||||
PORTR.DIRCLR = LEDS_ALL_LEDS;
|
PORTR.DIRCLR = LEDS_PORTR_LEDS;
|
||||||
PORTR.OUTCLR = LEDS_ALL_LEDS;
|
PORTR.OUTCLR = LEDS_PORTR_LEDS;
|
||||||
|
|
||||||
PORTCFG.MPCMASK = 0;
|
PORTCFG.MPCMASK = 0;
|
||||||
PORTR.PIN0CTRL = LEDS_ALL_LEDS;
|
PORTR.PIN0CTRL = LEDS_PORTR_LEDS;
|
||||||
|
|
||||||
|
PORTD.DIRCLR = LEDS_PORTD_LEDS;
|
||||||
|
PORTD.OUTCLR = LEDS_PORTD_LEDS;
|
||||||
|
|
||||||
|
PORTD.PIN4CTRL = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask)
|
static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask)
|
||||||
{
|
{
|
||||||
PORTR_OUTSET = LEDMask;
|
PORTR_OUTSET = LEDMask & LEDS_PORTR_LEDS;
|
||||||
|
PORTD_OUTSET = LEDMask & LEDS_PORTD_LEDS;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void LEDs_TurnOffLEDs(const uint8_t LEDMask)
|
static inline void LEDs_TurnOffLEDs(const uint8_t LEDMask)
|
||||||
{
|
{
|
||||||
PORTR_OUTCLR = LEDMask;
|
PORTR_OUTCLR = LEDMask & LEDS_PORTR_LEDS;
|
||||||
|
PORTD_OUTCLR = LEDMask & LEDS_PORTD_LEDS;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void LEDs_SetAllLEDs(const uint8_t LEDMask)
|
static inline void LEDs_SetAllLEDs(const uint8_t LEDMask)
|
||||||
{
|
{
|
||||||
PORTR_OUT = (PORTR.OUT & ~LEDS_ALL_LEDS) | LEDMask;
|
PORTR_OUT = ((PORTR.OUT & ~LEDS_PORTR_LEDS) | (LEDMask & LEDS_PORTR_LEDS));
|
||||||
|
PORTD_OUT = ((PORTD.OUT & ~LEDS_PORTD_LEDS) | (LEDMask & LEDS_PORTD_LEDS));
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void LEDs_ChangeLEDs(const uint8_t LEDMask, const uint8_t ActiveMask)
|
static inline void LEDs_ChangeLEDs(const uint8_t LEDMask, const uint8_t ActiveMask)
|
||||||
{
|
{
|
||||||
PORTR_OUT = (PORTR.OUT & ~LEDMask) | ActiveMask;
|
PORTR_OUT = (PORTR.OUT & ~(LEDMask & LEDS_PORTR_LEDS)) | (Active & LEDS_PORTR_LEDS);
|
||||||
|
PORTD_OUT = (PORTD.OUT & ~(LEDMask & LEDS_PORTD_LEDS)) | (Active & LEDS_PORTD_LEDS);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)
|
static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)
|
||||||
{
|
{
|
||||||
PORTR_OUTTGL = LEDMask;
|
PORTR_OUTTGL = (LEDMask & LEDS_PORTR_LEDS);
|
||||||
|
PORTD_OUTTGL = (LEDMask & LEDS_PORTD_LEDS);
|
||||||
}
|
}
|
||||||
|
|
||||||
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)
|
||||||
{
|
{
|
||||||
return (PORTR_OUT & LEDS_ALL_LEDS);
|
return ((PORTR_OUT & LEDS_PORTR_LEDS) | (PORTD_OUT & LEDS_PORTD_LEDS));
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user