mirror of
https://github.com/qmk/qmk_firmware.git
synced 2025-06-12 20:04:15 +00:00
Fix LED driver for the Arduino Leonardo board.
This commit is contained in:
parent
7ad97a3d5d
commit
7768935889
@ -11,6 +11,7 @@
|
|||||||
* - Core:
|
* - Core:
|
||||||
* - Fixed device class driver pipe configuration routines returning success with a partially constructed instance
|
* - Fixed device class driver pipe configuration routines returning success with a partially constructed instance
|
||||||
* when a pipe configuration failed (thanks to Helge Suess)
|
* when a pipe configuration failed (thanks to Helge Suess)
|
||||||
|
* - Fixed incorrect LED driver definitions for the Arduino Leonardo board (thanks to Zoltán Szőke)
|
||||||
*
|
*
|
||||||
* \section Sec_ChangeLog140302 Version 140302
|
* \section Sec_ChangeLog140302 Version 140302
|
||||||
* <b>New:</b>
|
* <b>New:</b>
|
||||||
|
@ -98,9 +98,9 @@
|
|||||||
static inline void LEDs_Init(void)
|
static inline void LEDs_Init(void)
|
||||||
{
|
{
|
||||||
DDRB |= LEDS_PORTB_LEDS;
|
DDRB |= LEDS_PORTB_LEDS;
|
||||||
PORTB |= LEDS_PORTB_LEDS;
|
PORTB &= LEDS_PORTB_LEDS;
|
||||||
DDRD |= LEDS_PORTD_LEDS;
|
DDRD |= LEDS_PORTD_LEDS;
|
||||||
PORTD |= LEDS_PORTD_LEDS;
|
PORTD &= LEDS_PORTD_LEDS;
|
||||||
DDRC |= LEDS_PORTC_LEDS;
|
DDRC |= LEDS_PORTC_LEDS;
|
||||||
PORTC &= ~LEDS_PORTC_LEDS;
|
PORTC &= ~LEDS_PORTC_LEDS;
|
||||||
}
|
}
|
||||||
@ -117,44 +117,44 @@
|
|||||||
|
|
||||||
static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask)
|
static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask)
|
||||||
{
|
{
|
||||||
PORTB &= ~(LEDMask & LEDS_PORTB_LEDS);
|
PORTB |= (LEDMask & LEDS_PORTB_LEDS);
|
||||||
PORTD &= ~(LEDMask & LEDS_PORTD_LEDS);
|
PORTD |= (LEDMask & LEDS_PORTD_LEDS);
|
||||||
PORTC |= (LEDMask & LEDS_PORTC_LEDS);
|
PORTC |= (LEDMask & LEDS_PORTC_LEDS);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void LEDs_TurnOffLEDs(const uint8_t LEDMask)
|
static inline void LEDs_TurnOffLEDs(const uint8_t LEDMask)
|
||||||
{
|
{
|
||||||
PORTB |= (LEDMask & LEDS_PORTB_LEDS);
|
PORTB &= ~(LEDMask & LEDS_PORTB_LEDS);
|
||||||
PORTD |= (LEDMask & LEDS_PORTD_LEDS);
|
PORTD &= ~(LEDMask & LEDS_PORTD_LEDS);
|
||||||
PORTC &= ~(LEDMask & LEDS_PORTC_LEDS);
|
PORTC &= ~(LEDMask & LEDS_PORTC_LEDS);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void LEDs_SetAllLEDs(const uint8_t LEDMask)
|
static inline void LEDs_SetAllLEDs(const uint8_t LEDMask)
|
||||||
{
|
{
|
||||||
PORTB = ((PORTB | LEDS_PORTB_LEDS) & ~(LEDMask & LEDS_PORTB_LEDS));
|
PORTB = ((PORTB & ~LEDS_PORTB_LEDS) | (LEDMask & LEDS_PORTB_LEDS));
|
||||||
PORTD = ((PORTD | LEDS_PORTD_LEDS) & ~(LEDMask & LEDS_PORTD_LEDS));
|
PORTD = ((PORTD & ~LEDS_PORTD_LEDS) | (LEDMask & LEDS_PORTD_LEDS));
|
||||||
PORTC = ((PORTC & ~LEDS_PORTC_LEDS) | (LEDMask & LEDS_PORTC_LEDS));
|
PORTC = ((PORTC & ~LEDS_PORTC_LEDS) | (LEDMask & LEDS_PORTC_LEDS));
|
||||||
}
|
}
|
||||||
|
|
||||||
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)
|
||||||
{
|
{
|
||||||
PORTB = ((PORTB | (LEDMask & LEDS_PORTB_LEDS)) & ~(ActiveMask & LEDS_PORTB_LEDS));
|
PORTB = ((PORTB & ~(LEDMask & LEDS_PORTB_LEDS)) | (ActiveMask & LEDS_PORTB_LEDS));
|
||||||
PORTD = ((PORTD | (LEDMask & LEDS_PORTD_LEDS)) & ~(ActiveMask & LEDS_PORTD_LEDS));
|
PORTD = ((PORTD & ~(LEDMask & LEDS_PORTD_LEDS)) | (ActiveMask & LEDS_PORTD_LEDS));
|
||||||
PORTC = ((PORTC & ~(LEDMask & LEDS_PORTC_LEDS)) | (ActiveMask & LEDS_PORTC_LEDS));
|
PORTC = ((PORTC & ~(LEDMask & LEDS_PORTC_LEDS)) | (ActiveMask & LEDS_PORTC_LEDS));
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)
|
static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)
|
||||||
{
|
{
|
||||||
PINB = (LEDMask & LEDS_PORTB_LEDS);
|
PORTB ^= (LEDMask & LEDS_PORTB_LEDS);
|
||||||
PIND = (LEDMask & LEDS_PORTD_LEDS);
|
PORTD ^= (LEDMask & LEDS_PORTD_LEDS);
|
||||||
PINC = (LEDMask & LEDS_PORTC_LEDS);
|
PORTC ^= (LEDMask & LEDS_PORTC_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 ((PORTB & LEDS_PORTB_LEDS) | (PORTD & LEDS_PORTD_LEDS) | (~PORTC & LEDS_PORTC_LEDS));
|
return ((PORTB & LEDS_PORTB_LEDS) | (PORTD & LEDS_PORTD_LEDS) | (PORTC & LEDS_PORTC_LEDS));
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user