]> begriffs open source - cmsis-freertos/blob - Demo/AVR32_UC3/BOARDS/EVK1101/led.h
Initial commit
[cmsis-freertos] / Demo / AVR32_UC3 / BOARDS / EVK1101 / led.h
1 /*This file is prepared for Doxygen automatic documentation generation.*/
2 /*! \file *********************************************************************
3  *
4  * \brief AT32UC3B EVK1101 board LEDs support package.
5  *
6  * This file contains definitions and services related to the LED features of
7  * the EVK1101 board.
8  *
9  * - Compiler:           IAR EWAVR32 and GNU GCC for AVR32
10  * - Supported devices:  All AVR32 AT32UC3B devices can be used.
11  * - AppNote:
12  *
13  * \author               Atmel Corporation: http://www.atmel.com \n
14  *                       Support and FAQ: http://support.atmel.no/
15  *
16  ******************************************************************************/
17
18 /* Copyright (c) 2007, Atmel Corporation All rights reserved.
19  *
20  * Redistribution and use in source and binary forms, with or without
21  * modification, are permitted provided that the following conditions are met:
22  *
23  * 1. Redistributions of source code must retain the above copyright notice,
24  * this list of conditions and the following disclaimer.
25  *
26  * 2. Redistributions in binary form must reproduce the above copyright notice,
27  * this list of conditions and the following disclaimer in the documentation
28  * and/or other materials provided with the distribution.
29  *
30  * 3. The name of ATMEL may not be used to endorse or promote products derived
31  * from this software without specific prior written permission.
32  *
33  * THIS SOFTWARE IS PROVIDED BY ATMEL ``AS IS'' AND ANY EXPRESS OR IMPLIED
34  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
35  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND
36  * SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT,
37  * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
38  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
39  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
40  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
41  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
42  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
43  */
44
45
46 #ifndef _LED_H_
47 #define _LED_H_
48
49 #include "compiler.h"
50
51
52 /*! \name Identifiers of LEDs to Use with LED Functions
53  */
54 //! @{
55 #define LED0  0x01
56 #define LED1  0x02
57 #define LED2  0x04
58 #define LED3  0x08
59 //! @}
60
61
62 /*! \brief Gets the last state of all LEDs set through the LED API.
63  *
64  * \return State of all LEDs (1 bit per LED).
65  *
66  * \note The GPIO pin configuration of all LEDs is left unchanged.
67  */
68 extern U32 LED_Read_Display(void);
69
70 /*! \brief Sets the state of all LEDs.
71  *
72  * \param leds New state of all LEDs (1 bit per LED).
73  *
74  * \note The pins of all LEDs are set to GPIO output mode.
75  */
76 extern void LED_Display(U32 leds);
77
78 /*! \brief Gets the last state of the specified LEDs set through the LED API.
79  *
80  * \param mask LEDs of which to get the state (1 bit per LED).
81  *
82  * \return State of the specified LEDs (1 bit per LED).
83  *
84  * \note The GPIO pin configuration of all LEDs is left unchanged.
85  */
86 extern U32 LED_Read_Display_Mask(U32 mask);
87
88 /*! \brief Sets the state of the specified LEDs.
89  *
90  * \param mask LEDs of which to set the state (1 bit per LED).
91  *
92  * \param leds New state of the specified LEDs (1 bit per LED).
93  *
94  * \note The pins of the specified LEDs are set to GPIO output mode.
95  */
96 extern void LED_Display_Mask(U32 mask, U32 leds);
97
98 /*! \brief Tests the last state of the specified LEDs set through the LED API.
99  *
100  * \param leds LEDs of which to test the state (1 bit per LED).
101  *
102  * \return \c TRUE if at least one of the specified LEDs has a state on, else
103  *         \c FALSE.
104  *
105  * \note The GPIO pin configuration of all LEDs is left unchanged.
106  */
107 extern Bool LED_Test(U32 leds);
108
109 /*! \brief Turns off the specified LEDs.
110  *
111  * \param leds LEDs to turn off (1 bit per LED).
112  *
113  * \note The pins of the specified LEDs are set to GPIO output mode.
114  */
115 extern void LED_Off(U32 leds);
116
117 /*! \brief Turns on the specified LEDs.
118  *
119  * \param leds LEDs to turn on (1 bit per LED).
120  *
121  * \note The pins of the specified LEDs are set to GPIO output mode.
122  */
123 extern void LED_On(U32 leds);
124
125 /*! \brief Toggles the specified LEDs.
126  *
127  * \param leds LEDs to toggle (1 bit per LED).
128  *
129  * \note The pins of the specified LEDs are set to GPIO output mode.
130  */
131 extern void LED_Toggle(U32 leds);
132
133 /*! \brief Gets as a bit-field the last state of the specified LEDs set through
134  *         the LED API.
135  *
136  * \param field LEDs of which to get the state (1 bit per LED).
137  *
138  * \return State of the specified LEDs (1 bit per LED, beginning with the first
139  *         specified LED).
140  *
141  * \note The GPIO pin configuration of all LEDs is left unchanged.
142  */
143 extern U32 LED_Read_Display_Field(U32 field);
144
145 /*! \brief Sets as a bit-field the state of the specified LEDs.
146  *
147  * \param field LEDs of which to set the state (1 bit per LED).
148  * \param leds New state of the specified LEDs (1 bit per LED, beginning with
149  *             the first specified LED).
150  *
151  * \note The pins of the specified LEDs are set to GPIO output mode.
152  */
153 extern void LED_Display_Field(U32 field, U32 leds);
154
155 /*! \brief Gets the intensity of the specified LED.
156  *
157  * \param led LED of which to get the intensity (1 bit per LED; only the least
158  *            significant set bit is used).
159  *
160  * \return Intensity of the specified LED (0x00 to 0xFF).
161  *
162  * \warning The PWM channel of the specified LED is supposed to be used only by
163  *          this module.
164  *
165  * \note The GPIO pin configuration of all LEDs is left unchanged.
166  */
167 extern U8 LED_Get_Intensity(U32 led);
168
169 /*! \brief Sets the intensity of the specified LEDs.
170  *
171  * \param leds LEDs of which to set the intensity (1 bit per LED).
172  * \param intensity New intensity of the specified LEDs (0x00 to 0xFF).
173  *
174  * \warning The PWM channels of the specified LEDs are supposed to be used only
175  *          by this module.
176  *
177  * \note The pins of the specified LEDs are set to PWM output mode.
178  */
179 extern void LED_Set_Intensity(U32 leds, U8 intensity);
180
181
182 #endif  // _LED_H_