LEDs.h 3.55 KB
 Dean Camera committed May 08, 2010 1 2 /* LUFA Library  Dean Camera committed Jan 01, 2011 3  Copyright (C) Dean Camera, 2011.  4   Dean Camera committed May 08, 2010 5  dean [at] fourwalledcubicle [dot] com  Dean Camera committed Oct 28, 2010 6  www.lufa-lib.org  Dean Camera committed May 08, 2010 7 8 9 */ /*  Dean Camera committed Jan 01, 2011 10  Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)  Dean Camera committed May 08, 2010 11   12  Permission to use, copy, modify, distribute, and sell this  Dean Camera committed May 08, 2010 13  software and its documentation for any purpose is hereby granted  14  without fee, provided that the above copyright notice appear in  Dean Camera committed May 08, 2010 15  all copies and that both that the copyright notice and this  16 17 18  permission notice and warranty disclaimer appear in supporting documentation, and that the name of the author not be used in advertising or publicity pertaining to distribution of the  Dean Camera committed May 08, 2010 19 20 21 22 23 24 25 26 27 28 29 30 31  software without specific, written prior permission. The author disclaim all warranties with regard to this software, including all implied warranties of merchantability and fitness. In no event shall the author be liable for any special, indirect or consequential damages or any damages whatsoever resulting from loss of use, data or profits, whether in an action of contract, negligence or other tortious action, arising out of or in connection with the use or performance of this software. */ /** \file  Dean Camera committed Nov 23, 2011 32  * \brief Board specific LED driver header for the original Atmel XPLAIN.  Dean Camera committed Feb 20, 2011 33  * \copydetails Group_LEDs_XPLAIN  Dean Camera committed May 08, 2010 34 35 36 37  * * \note This file should not be included directly. It is automatically included as needed by the LEDs driver * dispatch header located in LUFA/Drivers/Board/LEDs.h. */  38 39 40 41 42 43 44  /** \ingroup Group_LEDs * \defgroup Group_LEDs_XPLAIN_REV1 XPLAIN_REV1 * \brief Board specific LED driver header for the original Atmel XPLAIN, revision 1. * * See \ref Group_LEDs_XPLAIN for more details. */  Dean Camera committed May 08, 2010 45 46  /** \ingroup Group_LEDs  Dean Camera committed Feb 19, 2011 47  * \defgroup Group_LEDs_XPLAIN XPLAIN  Dean Camera committed Nov 23, 2011 48  * \brief Board specific LED driver header for the original Atmel XPLAIN.  Dean Camera committed May 08, 2010 49  *  Dean Camera committed Sep 14, 2010 50  * Board specific LED driver header for the Atmel XPLAIN.  Dean Camera committed May 08, 2010 51 52 53  * * @{ */  54   Dean Camera committed May 08, 2010 55 56 57 58 #ifndef __LEDS_XPLAIN_H__ #define __LEDS_XPLAIN_H__ /* Includes: */  59  #include "../../../../Common/Common.h"  Dean Camera committed May 08, 2010 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78  /* Enable C linkage for C++ Compilers: */ #if defined(__cplusplus) extern "C" { #endif /* Preprocessor Checks: */ #if !defined(__INCLUDE_FROM_LEDS_H) #error Do not include this file directly. Include LUFA/Drivers/Board/LEDS.h instead. #endif /* Public Interface - May be used in end-application: */ /* Macros: */ /** LED mask for the first LED on the board. */ #define LEDS_LED1 (1 << 6) /** LED mask for all the LEDs on the board. */ #define LEDS_ALL_LEDS LEDS_LED1  Dean Camera committed Sep 14, 2010 79  /** LED mask for none of the board LEDs. */  Dean Camera committed May 08, 2010 80 81 82 83 84 85 86 87 88  #define LEDS_NO_LEDS 0 /* Inline Functions: */ #if !defined(__DOXYGEN__) static inline void LEDs_Init(void) { DDRB |= LEDS_ALL_LEDS; PORTB |= LEDS_ALL_LEDS; }  89   Dean Camera committed May 08, 2010 90 91 92 93 94 95 96 97 98 99 100 101 102 103  static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask) { PORTB &= ~LEDMask; } static inline void LEDs_TurnOffLEDs(const uint8_t LEDMask) { PORTB |= LEDMask; } static inline void LEDs_SetAllLEDs(const uint8_t LEDMask) { PORTB = ((PORTB | LEDS_ALL_LEDS) & ~LEDMask); }  104   Dean Camera committed Jul 21, 2010 105 106  static inline void LEDs_ChangeLEDs(const uint8_t LEDMask, const uint8_t ActiveMask)  Dean Camera committed May 08, 2010 107  {  Dean Camera committed Sep 09, 2010 108  PORTB = ((PORTB | LEDMask) & ~ActiveMask);  Dean Camera committed May 08, 2010 109  }  110   Dean Camera committed May 08, 2010 111 112  static inline void LEDs_ToggleLEDs(const uint8_t LEDMask) {  Dean Camera committed Sep 09, 2010 113  PORTB ^= LEDMask;  Dean Camera committed May 08, 2010 114  }  115   Dean Camera committed May 08, 2010 116 117 118 119 120 121  static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT; static inline uint8_t LEDs_GetLEDs(void) { return (~PORTB & LEDS_ALL_LEDS); } #endif  122   Dean Camera committed May 08, 2010 123 124 125 126  /* Disable C linkage for C++ Compilers: */ #if defined(__cplusplus) } #endif  127   Dean Camera committed May 08, 2010 128 129 130 #endif /** @} */  131