Fixed inverted LED driving code for the Arduino Leonardo board. Fixed inverted LEDs_G...
authorDean Camera <dean@fourwalledcubicle.com>
Sun, 12 Aug 2012 17:25:39 +0000 (17:25 +0000)
committerDean Camera <dean@fourwalledcubicle.com>
Sun, 12 Aug 2012 17:25:39 +0000 (17:25 +0000)
LUFA/DoxygenPages/ChangeLog.txt
LUFA/Drivers/Board/AVR8/BENITO/LEDs.h
LUFA/Drivers/Board/AVR8/LEONARDO/LEDs.h
LUFA/Drivers/Board/AVR8/MINIMUS/LEDs.h
LUFA/Drivers/Board/AVR8/UNO/LEDs.h
LUFA/Drivers/Board/AVR8/USBKEY/LEDs.h

index b91d1ba..4f507ee 100644 (file)
@@ -22,7 +22,7 @@
   *
   *  <b>Fixed:</b>
   *  - Core:
-  *   - <i>None</i>
+  *   - Fixed inverted LEDs_GetLEDs() function implementation for the Benito, Minimus and Arduino UNO boards
   *  - Library Applications:
   *   - Fixed broken RESET_TOGGLES_LIBUSB_COMPAT compile time option in the AVRISP-MKII project
   *
index 875130f..8e586c4 100644 (file)
                        static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;
                        static inline uint8_t LEDs_GetLEDs(void)
                        {
-                               return (PORTC & LEDS_ALL_LEDS);
+                               return (~PORTC & LEDS_ALL_LEDS);
                        }
                #endif
 
index 0a3c9fc..e8e9c49 100644 (file)
@@ -73,7 +73,7 @@
                /* Macros: */
                        #define LEDS_PORTB_LEDS       (LEDS_LED1)
                        #define LEDS_PORTD_LEDS       (LEDS_LED2)
-                       #define LEDS_PORTE_LEDS       (LEDS_LED3)
+                       #define LEDS_PORTC_LEDS       (LEDS_LED3)
        #endif
        
        /* Public Interface - May be used in end-application: */
@@ -85,7 +85,7 @@
                        #define LEDS_LED2        (1 << 0)
 
                        /** LED mask for the third LED on the board. */
-                       #define LEDS_LED3        (1 << 6)
+                       #define LEDS_LED3        (1 << 7)
                        
                        /** LED mask for all the LEDs on the board. */
                        #define LEDS_ALL_LEDS    (LEDS_LED1 | LEDS_LED2 | LEDS_LED3)
                        static inline void LEDs_Init(void)
                        {
                                DDRB  |=  LEDS_PORTB_LEDS;
-                               PORTB &= ~LEDS_PORTB_LEDS;
+                               PORTB |=  LEDS_PORTB_LEDS;
                                DDRD  |=  LEDS_PORTD_LEDS;
-                               PORTD &= ~LEDS_PORTD_LEDS;
-                               DDRE  |=  LEDS_PORTE_LEDS;
-                               PORTE &= ~LEDS_PORTE_LEDS;
+                               PORTD |=  LEDS_PORTD_LEDS;
+                               DDRC  |=  LEDS_PORTC_LEDS;
+                               PORTC &= ~LEDS_PORTC_LEDS;
                        }
 
                        static inline void LEDs_Disable(void)
                                PORTB &= ~LEDS_PORTB_LEDS;
                                DDRD  &= ~LEDS_PORTD_LEDS;
                                PORTD &= ~LEDS_PORTD_LEDS;
-                               DDRE  &= ~LEDS_PORTE_LEDS;
-                               PORTE &= ~LEDS_PORTE_LEDS;
+                               DDRC  &= ~LEDS_PORTC_LEDS;
+                               PORTC &= ~LEDS_PORTC_LEDS;
                        }
 
                        static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask)
                        {
-                               PORTB |= (LEDMask & LEDS_PORTB_LEDS);
-                               PORTD |= (LEDMask & LEDS_PORTD_LEDS);
-                               PORTE |= (LEDMask & LEDS_PORTE_LEDS);
+                               PORTB &= ~(LEDMask & LEDS_PORTB_LEDS);
+                               PORTD &= ~(LEDMask & LEDS_PORTD_LEDS);
+                               PORTC |=  (LEDMask & LEDS_PORTC_LEDS);
                        }
 
                        static inline void LEDs_TurnOffLEDs(const uint8_t LEDMask)
                        {
-                               PORTB &= ~(LEDMask & LEDS_PORTB_LEDS);
-                               PORTD &= ~(LEDMask & LEDS_PORTD_LEDS);
-                               PORTE &= ~(LEDMask & LEDS_PORTE_LEDS);
+                               PORTB |=  (LEDMask & LEDS_PORTB_LEDS);
+                               PORTD |=  (LEDMask & LEDS_PORTD_LEDS);
+                               PORTC &= ~(LEDMask & LEDS_PORTC_LEDS);
                        }
 
                        static inline void LEDs_SetAllLEDs(const uint8_t LEDMask)
                        {
-                               PORTB = ((PORTB & ~LEDS_PORTB_LEDS) | (LEDMask & LEDS_PORTB_LEDS));
-                               PORTD = ((PORTD & ~LEDS_PORTD_LEDS) | (LEDMask & LEDS_PORTD_LEDS));
-                               PORTE = ((PORTE & ~LEDS_PORTE_LEDS) | (LEDMask & LEDS_PORTE_LEDS));
+                               PORTB = ((PORTB & ~LEDS_PORTB_LEDS) |  (LEDMask & LEDS_PORTB_LEDS));
+                               PORTD = ((PORTD & ~LEDS_PORTD_LEDS) |  (LEDMask & LEDS_PORTD_LEDS));
+                               PORTC = ((PORTC |  LEDS_PORTC_LEDS) & ~(LEDMask & LEDS_PORTC_LEDS));
                        }
 
                        static inline void LEDs_ChangeLEDs(const uint8_t LEDMask,
                                                           const uint8_t ActiveMask)
                        {
-                               PORTB = ((PORTB & ~(LEDMask & LEDS_PORTB_LEDS)) | (ActiveMask & LEDS_PORTB_LEDS));
-                               PORTD = ((PORTD & ~(LEDMask & LEDS_PORTD_LEDS)) | (ActiveMask & LEDS_PORTD_LEDS));
-                               PORTE = ((PORTE & ~(LEDMask & LEDS_PORTE_LEDS)) | (ActiveMask & LEDS_PORTE_LEDS));
+                               PORTB = ((PORTB & ~(LEDMask & LEDS_PORTB_LEDS)) |  (ActiveMask & LEDS_PORTB_LEDS));
+                               PORTD = ((PORTD & ~(LEDMask & LEDS_PORTD_LEDS)) |  (ActiveMask & LEDS_PORTD_LEDS));
+                               PORTC = ((PORTC |  (LEDMask & LEDS_PORTC_LEDS)) | ~(ActiveMask & LEDS_PORTC_LEDS));
                        }
 
                        static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)
                        {
                                PINB  = (LEDMask & LEDS_PORTB_LEDS);
                                PIND  = (LEDMask & LEDS_PORTD_LEDS);
-                               PINE  = (LEDMask & LEDS_PORTE_LEDS);
+                               PINC  = (LEDMask & LEDS_PORTC_LEDS);
                        }
 
                        static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;
                        static inline uint8_t LEDs_GetLEDs(void)
                        {
-                               return ((PORTB & LEDS_PORTB_LEDS) | (PORTD & LEDS_PORTD_LEDS) | (PORTE & LEDS_PORTE_LEDS));
+                               return ((PORTB & LEDS_PORTB_LEDS) | (PORTD & LEDS_PORTD_LEDS) | (~PORTC & LEDS_PORTC_LEDS));
                        }
                #endif
 
index f23317d..74c6d16 100644 (file)
                        static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;
                        static inline uint8_t LEDs_GetLEDs(void)
                        {
-                               return (PORTD & LEDS_ALL_LEDS);
+                               return (~PORTD & LEDS_ALL_LEDS);
                        }
                #endif
 
index 2a6178c..9c01c61 100644 (file)
                        static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;
                        static inline uint8_t LEDs_GetLEDs(void)
                        {
-                               return (PORTD & LEDS_ALL_LEDS);
+                               return (~PORTD & LEDS_ALL_LEDS);
                        }
                #endif
 
index 25a90a7..fef8c06 100644 (file)
  *
  *  <table>
  *    <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>Red</td><td>Bicolor Indicator 1</td><td>Low</td><td>PORTD.4</td></tr>
- *    <tr><td>LEDS_LED2</td><td>Green</td><td>Bicolor Indicator 1</td><td>Low</td><td>PORTD.5</td></tr>
- *    <tr><td>LEDS_LED3</td><td>Red</td><td>Bicolor Indicator 2</td><td>Low</td><td>PORTD.6</td></tr>
- *    <tr><td>LEDS_LED4</td><td>Green</td><td>Bicolor Indicator 2</td><td>Low</td><td>PORTD.7</td></tr>
+ *    <tr><td>LEDS_LED1</td><td>Red</td><td>Bicolor Indicator 1</td><td>High</td><td>PORTD.4</td></tr>
+ *    <tr><td>LEDS_LED2</td><td>Green</td><td>Bicolor Indicator 1</td><td>High</td><td>PORTD.5</td></tr>
+ *    <tr><td>LEDS_LED3</td><td>Red</td><td>Bicolor Indicator 2</td><td>High</td><td>PORTD.6</td></tr>
+ *    <tr><td>LEDS_LED4</td><td>Green</td><td>Bicolor Indicator 2</td><td>High</td><td>PORTD.7</td></tr>
  *  </table>
  *
  *  @{