1 /*This file is prepared for Doxygen automatic documentation generation.*/
2 /*! \file *********************************************************************
4 * \brief AT32UC3B EVK1101 board LEDs support package.
6 * This file contains definitions and services related to the LED features of
9 * - Compiler: IAR EWAVR32 and GNU GCC for AVR32
10 * - Supported devices: All AVR32 AT32UC3B devices can be used.
13 * \author Atmel Corporation: http://www.atmel.com \n
14 * Support and FAQ: http://support.atmel.no/
16 ******************************************************************************/
18 /* Copyright (c) 2007, Atmel Corporation All rights reserved.
20 * Redistribution and use in source and binary forms, with or without
21 * modification, are permitted provided that the following conditions are met:
23 * 1. Redistributions of source code must retain the above copyright notice,
24 * this list of conditions and the following disclaimer.
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.
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.
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.
52 /*! \name Identifiers of LEDs to Use with LED Functions
62 /*! \brief Gets the last state of all LEDs set through the LED API.
64 * \return State of all LEDs (1 bit per LED).
66 * \note The GPIO pin configuration of all LEDs is left unchanged.
68 extern U32 LED_Read_Display(void);
70 /*! \brief Sets the state of all LEDs.
72 * \param leds New state of all LEDs (1 bit per LED).
74 * \note The pins of all LEDs are set to GPIO output mode.
76 extern void LED_Display(U32 leds);
78 /*! \brief Gets the last state of the specified LEDs set through the LED API.
80 * \param mask LEDs of which to get the state (1 bit per LED).
82 * \return State of the specified LEDs (1 bit per LED).
84 * \note The GPIO pin configuration of all LEDs is left unchanged.
86 extern U32 LED_Read_Display_Mask(U32 mask);
88 /*! \brief Sets the state of the specified LEDs.
90 * \param mask LEDs of which to set the state (1 bit per LED).
92 * \param leds New state of the specified LEDs (1 bit per LED).
94 * \note The pins of the specified LEDs are set to GPIO output mode.
96 extern void LED_Display_Mask(U32 mask, U32 leds);
98 /*! \brief Tests the last state of the specified LEDs set through the LED API.
100 * \param leds LEDs of which to test the state (1 bit per LED).
102 * \return \c TRUE if at least one of the specified LEDs has a state on, else
105 * \note The GPIO pin configuration of all LEDs is left unchanged.
107 extern Bool LED_Test(U32 leds);
109 /*! \brief Turns off the specified LEDs.
111 * \param leds LEDs to turn off (1 bit per LED).
113 * \note The pins of the specified LEDs are set to GPIO output mode.
115 extern void LED_Off(U32 leds);
117 /*! \brief Turns on the specified LEDs.
119 * \param leds LEDs to turn on (1 bit per LED).
121 * \note The pins of the specified LEDs are set to GPIO output mode.
123 extern void LED_On(U32 leds);
125 /*! \brief Toggles the specified LEDs.
127 * \param leds LEDs to toggle (1 bit per LED).
129 * \note The pins of the specified LEDs are set to GPIO output mode.
131 extern void LED_Toggle(U32 leds);
133 /*! \brief Gets as a bit-field the last state of the specified LEDs set through
136 * \param field LEDs of which to get the state (1 bit per LED).
138 * \return State of the specified LEDs (1 bit per LED, beginning with the first
141 * \note The GPIO pin configuration of all LEDs is left unchanged.
143 extern U32 LED_Read_Display_Field(U32 field);
145 /*! \brief Sets as a bit-field the state of the specified LEDs.
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).
151 * \note The pins of the specified LEDs are set to GPIO output mode.
153 extern void LED_Display_Field(U32 field, U32 leds);
155 /*! \brief Gets the intensity of the specified LED.
157 * \param led LED of which to get the intensity (1 bit per LED; only the least
158 * significant set bit is used).
160 * \return Intensity of the specified LED (0x00 to 0xFF).
162 * \warning The PWM channel of the specified LED is supposed to be used only by
165 * \note The GPIO pin configuration of all LEDs is left unchanged.
167 extern U8 LED_Get_Intensity(U32 led);
169 /*! \brief Sets the intensity of the specified LEDs.
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).
174 * \warning The PWM channels of the specified LEDs are supposed to be used only
177 * \note The pins of the specified LEDs are set to PWM output mode.
179 extern void LED_Set_Intensity(U32 leds, U8 intensity);