* - Added support for various assert and debugging macros for the UC3 devices
* - Changed MIDI event structure MIDI_EventPacket_t to use a single field for the combined virtual cable index and command ID, to prevent bitfield packing issues
* on some architectures (thanks to Darren Gibbs)
+ * - Changed board LED driver implementations of LEDs_ToggleLEDs() for the AVR8 architecture to use the fast PIN register toggle alternative function for speed
* - Library Applications:
* - Raised the guard bits in the AVRISP-MKII clone project when in PDI and TPI to 32, to prevent communication errors on low quality connections to a target
* - Added additional bootloader API data to expose the bootloader start address and class to the DFU and CDC class bootloaders
static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)
{
- PORTE ^= LEDMask;
+ PINE = LEDMask;
}
static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;
static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)
{
- PORTD ^= LEDMask;
+ PIND = LEDMask;
}
static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;
static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)
{
- PORTC ^= LEDMask;
+ PINC = LEDMask;
}
static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;
\r
static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)\r
{\r
- PORTF ^= (LEDMask & LEDS_PORTF_LEDS);\r
- PORTE ^= (LEDMask & LEDS_PORTE_LEDS);\r
+ PINF = (LEDMask & LEDS_PORTF_LEDS);\r
+ PINE = (LEDMask & LEDS_PORTE_LEDS);\r
}\r
\r
static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;\r
static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)
{
- PORTD ^= LEDMask;
+ PIND = LEDMask;
}
static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;
static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)
{
- PORTC ^= LEDMask;
+ PINC = LEDMask;
}
static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;
static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)
{
- PORTB ^= LEDMask;
+ PINB = LEDMask;
}
static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;
static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)
{
- PORTE ^= LEDMask;
+ PINE = LEDMask;
}
static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;
static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)
{
- PORTC ^= LEDMask;
+ PINC = LEDMask;
}
static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;
static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)
{
- PORTD ^= LEDMask;
+ PIND = LEDMask;
}
static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;
static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)
{
- PORTD ^= LEDMask;
+ PIND = LEDMask;
}
static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;
static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)
{
- PORTB ^= LEDMask;
+ PINB = LEDMask;
}
static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;
#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_PIN _BOARD_LED_CONCAT(PIN, _BOARD_LED_PORTLETTER)
#define _BOARD_LED_DDR _BOARD_LED_CONCAT(DDR, _BOARD_LED_PORTLETTER)
#endif
static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)
{
- _BOARD_LED_PORT ^= LEDMask;
+ _BOARD_LED_PIN = LEDMask;
}
static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;
static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)
{
- PORTD ^= LEDMask;
+ PIND = LEDMask;
}
static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;
static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)
{
- PORTD ^= LEDMask;
+ PIND = LEDMask;
}
static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;
\r
static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)\r
{\r
- PORTD ^= (LEDMask & LEDS_PORTD_LEDS);\r
- PORTC ^= (LEDMask & LEDS_PORTC_LEDS);\r
+ PIND = (LEDMask & LEDS_PORTD_LEDS);\r
+ PINC = (LEDMask & LEDS_PORTC_LEDS);\r
}\r
\r
static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;\r
static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)
{
- PORTD ^= LEDMask;
+ PIND = LEDMask;
}
static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;
static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)
{
- PORTB ^= (LEDMask & LEDS_PORTB_LEDS);
- PORTD ^= ((LEDMask & LEDS_PORTD_LEDS) << LEDS_PORTD_MASK_SHIFT);
- PORTE ^= (LEDMask & LEDS_PORTE_LEDS);
+ PINB = (LEDMask & LEDS_PORTB_LEDS);
+ PIND = ((LEDMask & LEDS_PORTD_LEDS) << LEDS_PORTD_MASK_SHIFT);
+ PINE = (LEDMask & LEDS_PORTE_LEDS);
}
static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;
static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)
{
- PORTB ^= (LEDMask & LEDS_PORTB_LEDS);
- PORTD ^= (LEDMask & LEDS_PORTD_LEDS);
- PORTE ^= (LEDMask & LEDS_PORTE_LEDS);
+ PINB = (LEDMask & LEDS_PORTB_LEDS);
+ PIND = (LEDMask & LEDS_PORTD_LEDS);
+ PINE = (LEDMask & LEDS_PORTE_LEDS);
}
static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;
static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)
{
- PORTD ^= (LEDMask & LEDS_PORTD_LEDS);
- PORTE ^= ((LEDMask & LEDS_PORTE_LEDS) << LEDS_PORTE_MASK_SHIFT);
+ PIND = (LEDMask & LEDS_PORTD_LEDS);
+ PINE = ((LEDMask & LEDS_PORTE_LEDS) << LEDS_PORTE_MASK_SHIFT);
}
static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;
static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)
{
- PORTB ^= LEDMask;
+ PINB = LEDMask;
}
static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;
static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)
{
- PORTD ^= LEDMask;
+ PIND = LEDMask;
}
static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;
static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)
{
- PORTD ^= LEDMask;
+ PIND = LEDMask;
}
static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;
static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)
{
- PORTD ^= LEDMask;
+ PIND = LEDMask;
}
static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;
static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)
{
- PORTF ^= LEDMask;
+ PINF = LEDMask;
}
static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;
static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)
{
- PORTB ^= (LEDMask & LEDS_PORTB_LEDS);
- PORTD ^= ((LEDMask & LEDS_PORTD_LEDS) << LEDS_PORTD_MASK_SHIFT);
+ PINB = (LEDMask & LEDS_PORTB_LEDS);
+ PIND = ((LEDMask & LEDS_PORTD_LEDS) << LEDS_PORTD_MASK_SHIFT);
}
static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;
static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)
{
- PORTD ^= LEDMask;
+ PIND = LEDMask;
}
static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;
static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)\r
{\r
#if (BOARD == BOARD_USB2AX)\r
- PORTC ^= LEDMask; \r
+ PINC = LEDMask; \r
#else\r
- PORTD ^= LEDMask;\r
+ PIND = LEDMask;\r
#endif\r
}\r
\r
static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)
{
- PORTD ^= LEDMask;
+ PIND = LEDMask;
}
static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;
static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)
{
- PORTD ^= LEDMask;
+ PIND = LEDMask;
}
static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;
static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)
{
- PORTB ^= LEDMask;
+ PINB = LEDMask;
}
static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;
static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)
{
- PORTB ^= LEDMask;
+ PINB = LEDMask;
}
static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;