Added LEDs_ToggleLEDs() function to several board LED drivers which were missing it (thanks to Andrei Krainev).

Simplify some of the LED driver functions to produce more compact code.
Dean Camera 15 years ago
parent 7aaf9b2036
commit 66f14d44a3
  1. 4
      LUFA/Drivers/Board/ATAVRUSBRF01/LEDs.h
  2. 5
      LUFA/Drivers/Board/BUMBLEB/LEDs.h
  3. 2
      LUFA/Drivers/Board/EVK527/LEDs.h
  4. 2
      LUFA/Drivers/Board/JMDBU2/LEDs.h
  5. 2
      LUFA/Drivers/Board/OLIMEX162/LEDs.h
  6. 2
      LUFA/Drivers/Board/STK525/LEDs.h
  7. 4
      LUFA/Drivers/Board/STK526/LEDs.h
  8. 2
      LUFA/Drivers/Board/USBKEY/LEDs.h
  9. 5
      LUFA/Drivers/Board/USBTINYMKII/LEDs.h
  10. 4
      LUFA/Drivers/Board/XPLAIN/LEDs.h
  11. 1
      LUFA/ManPages/ChangeLog.txt
  12. 4
      LUFA/ManPages/LUFAPoweredProjects.txt

@ -115,12 +115,12 @@
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)
{ {
PORTD = ((PORTD & ~(LEDMask & LEDS_ALL_LEDS)) | (ActiveMask & LEDS_ALL_LEDS)); PORTD = ((PORTD & ~LEDMask) | ActiveMask);
} }
static inline void LEDs_ToggleLEDs(const uint8_t LEDMask) static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)
{ {
PORTD = (PORTD ^ (LEDMask & LEDS_ALL_LEDS)); PORTD ^= LEDMask;
} }
static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT; static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;

@ -120,6 +120,11 @@
PORTB = ((PORTB & ~LedMask) | ActiveMask); PORTB = ((PORTB & ~LedMask) | ActiveMask);
} }
static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)
{
PORTB ^= LEDMask;
}
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)
{ {

@ -114,7 +114,7 @@
static inline void LEDs_ToggleLEDs(const uint8_t LEDMask) static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)
{ {
PORTD = (PORTD ^ (LEDMask & LEDS_ALL_LEDS)); PORTD ^= LEDMask;
} }
static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT; static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;

@ -108,7 +108,7 @@
static inline void LEDs_ToggleLEDs(const uint8_t LEDMask) static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)
{ {
PORTD = (PORTD ^ (LEDMask & LEDS_ALL_LEDS)); PORTD ^= LEDMask;
} }
static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT; static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;

@ -122,7 +122,7 @@
#if defined(__cplusplus) #if defined(__cplusplus)
} }
#endif #endif
#endif #endif
/** @} */ /** @} */

@ -117,7 +117,7 @@
static inline void LEDs_ToggleLEDs(const uint8_t LEDMask) static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)
{ {
PORTD = (PORTD ^ (LEDMask & LEDS_ALL_LEDS)); PORTD ^= LEDMask;
} }
static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT; static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;

@ -112,12 +112,12 @@
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)
{ {
PORTD = ((PORTD & ~(LEDMask & LEDS_ALL_LEDS)) | (ActiveMask & LEDS_ALL_LEDS)); PORTD = ((PORTD & ~LEDMask) | ActiveMask);
} }
static inline void LEDs_ToggleLEDs(const uint8_t LEDMask) static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)
{ {
PORTD = (PORTD ^ (LEDMask & LEDS_ALL_LEDS)); PORTD ^= LEDMask;
} }
static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT; static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;

@ -117,7 +117,7 @@
static inline void LEDs_ToggleLEDs(const uint8_t LEDMask) static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)
{ {
PORTD = (PORTD ^ (LEDMask & LEDS_ALL_LEDS)); PORTD ^= LEDMask;
} }
static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT; static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;

@ -110,6 +110,11 @@
PORTB = ((PORTB & ~LedMask) | ActiveMask); PORTB = ((PORTB & ~LedMask) | ActiveMask);
} }
static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)
{
PORTB ^= LEDMask;
}
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)
{ {

@ -103,12 +103,12 @@
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_ALL_LEDS)) & (~ActiveMask & LEDS_ALL_LEDS)); PORTB = ((PORTB | LEDMask) & ~ActiveMask);
} }
static inline void LEDs_ToggleLEDs(const uint8_t LEDMask) static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)
{ {
PORTD = (PORTB ^ (LEDMask & LEDS_ALL_LEDS)); PORTB ^= LEDMask;
} }
static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT; static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;

@ -46,6 +46,7 @@
* - Fixed USBtoSerial and Benito project SetLineEncoding calls failing if the USART is busy, due to the RX ISR delaying the control * - Fixed USBtoSerial and Benito project SetLineEncoding calls failing if the USART is busy, due to the RX ISR delaying the control
* request handler * request handler
* - Fixed LowLevel PrinterHost demo not sending control requests to the attached printer with the correct printer interface wIndex value * - Fixed LowLevel PrinterHost demo not sending control requests to the attached printer with the correct printer interface wIndex value
* - Added LEDs_ToggleLEDs() function to several board LED drivers which were missing it (thanks to Andrei Krainev)
* *
* \section Sec_ChangeLog100807 Version 100807 * \section Sec_ChangeLog100807 Version 100807
* <b>New:</b> * <b>New:</b>

@ -19,11 +19,12 @@
* are open design, and all are available for purchase as completed development boards suitable for project development. * are open design, and all are available for purchase as completed development boards suitable for project development.
* *
* - AT90USB162 Breadboard PCB (Russian): http://microsin.ru/content/view/685/44/ * - AT90USB162 Breadboard PCB (Russian): http://microsin.ru/content/view/685/44/
* - AVR-USB-162, a USBKEY-like development board for the AT90USB162: http://olimex.com/dev/avr-usb-162.html
* - Benito #7, a no-frills USB board: http://www.dorkbotpdx.org/wiki/benito * - Benito #7, a no-frills USB board: http://www.dorkbotpdx.org/wiki/benito
* - JM-DB-U2, an ATMEGA32U2 development board: http://u2.mattair.net/index.html * - JM-DB-U2, an ATMEGA32U2 development board: http://u2.mattair.net/index.html
* - Micropendous, an open design/source set of AVR USB development boards: http://micropendous.org/ * - Micropendous, an open design/source set of AVR USB development boards: http://micropendous.org/
* - Minimus USB, a board specially designed for PSGroove: http://www.minimususb.com/
* - Nanduino, a do-it-yourself AT90USB162 board: http://www.makestuff.eu/wordpress/?page_id=569 * - Nanduino, a do-it-yourself AT90USB162 board: http://www.makestuff.eu/wordpress/?page_id=569
* - AVR-USB-162, a USBKEY-like development board for the AT90USB162: http://olimex.com/dev/avr-usb-162.html
* - Teensy and Teensy++, two other AVR USB development boards: http://www.pjrc.com/teensy/index.html * - Teensy and Teensy++, two other AVR USB development boards: http://www.pjrc.com/teensy/index.html
* - U2DIL/U4DIL, a set of DIP layout USB AVR boards: http://www.reworld.eu/re/en/products/u2dil/ * - U2DIL/U4DIL, a set of DIP layout USB AVR boards: http://www.reworld.eu/re/en/products/u2dil/
* - USBFOO 2, AT90USB162 based development board: http://shop.kernelconcepts.de/product_info.php?products_id=102 * - USBFOO 2, AT90USB162 based development board: http://shop.kernelconcepts.de/product_info.php?products_id=102
@ -88,4 +89,5 @@
* - Elektor Magazine, "My First AVR-USB" by Antoine Authier (feature), January 2010 Issue * - Elektor Magazine, "My First AVR-USB" by Antoine Authier (feature), January 2010 Issue
* - Elektor Magazine, "USB is Cool/Sucks" by Jerry Jacobs and Chris Vossen (minor mention), January 2010 Issue * - Elektor Magazine, "USB is Cool/Sucks" by Jerry Jacobs and Chris Vossen (minor mention), January 2010 Issue
* - Elektor Magazine, "20 x Open Source" by Jens Nickel, March 2010 Issue * - Elektor Magazine, "20 x Open Source" by Jens Nickel, March 2010 Issue
* - Circuit Cellar Magazine, "Advanced USB Design Debugging" by Collin O'Flynn, August 2010 Issue
*/ */
Loading…
Cancel
Save