GPIO header for AVR32 UC3. More...
#include <arch/avr32.h>
#include <avr32/io.h>
Go to the source code of this file.
Data Structures | |
struct | gpio_map_t |
A type definition of pins and modules connectivity. More... | |
Return Values of the GPIO API | |
#define | GPIO_SUCCESS 0 |
Function successfully completed. | |
#define | GPIO_INVALID_ARGUMENT 1 |
Interrupt Trigger Modes | |
#define | GPIO_PIN_CHANGE 0 |
Interrupt triggered upon pin change. | |
#define | GPIO_RISING_EDGE 1 |
Interrupt triggered upon rising edge. | |
#define | GPIO_FALLING_EDGE 2 |
Peripheral Bus Interface | |
Low-speed interface with a non-deterministic number of clock cycles per access. This interface operates with lower clock frequencies (fPB <= fCPU), and its timing is not deterministic since it needs to access a shared bus which may be heavily loaded.
| |
int | gpio_enable_module (const gpio_map_t gpiomap, unsigned int size) |
Enables specific module modes for a set of pins. | |
int | gpio_enable_module_pin (unsigned int pin, unsigned int function) |
Enables a specific module mode for a pin. | |
void | gpio_enable_gpio (const gpio_map_t gpiomap, unsigned int size) |
Enables the GPIO mode of a set of pins. | |
void | gpio_enable_gpio_pin (unsigned int pin) |
Enables the GPIO mode of a pin. | |
void | gpio_enable_pin_pull_up (unsigned int pin) |
Enables the pull-up resistor of a pin. | |
void | gpio_disable_pin_pull_up (unsigned int pin) |
Disables the pull-up resistor of a pin. | |
int | gpio_get_pin_value (unsigned int pin) |
Returns the value of a pin. | |
int | gpio_get_gpio_pin_output_value (unsigned int pin) |
Returns the output value set for a GPIO pin. | |
int | gpio_get_gpio_open_drain_pin_output_value (unsigned int pin) |
Returns the output value set for a GPIO pin using open drain. | |
void | gpio_set_gpio_pin (unsigned int pin) |
Drives a GPIO pin to 1. | |
void | gpio_clr_gpio_pin (unsigned int pin) |
Drives a GPIO pin to 0. | |
void | gpio_tgl_gpio_pin (unsigned int pin) |
Toggles a GPIO pin. | |
void | gpio_set_gpio_open_drain_pin (unsigned int pin) |
Drives a GPIO pin to 1 using open drain. | |
void | gpio_clr_gpio_open_drain_pin (unsigned int pin) |
Drives a GPIO pin to 0 using open drain. | |
void | gpio_tgl_gpio_open_drain_pin (unsigned int pin) |
Toggles a GPIO pin using open drain. | |
void | gpio_enable_pin_glitch_filter (unsigned int pin) |
Enables the glitch filter of a pin. | |
void | gpio_disable_pin_glitch_filter (unsigned int pin) |
Disables the glitch filter of a pin. | |
int | gpio_enable_pin_interrupt (unsigned int pin, unsigned int mode) |
Enables the interrupt of a pin with the specified settings. | |
void | gpio_disable_pin_interrupt (unsigned int pin) |
Disables the interrupt of a pin. | |
int | gpio_get_pin_interrupt_flag (unsigned int pin) |
Gets the interrupt flag of a pin. | |
void | gpio_clear_pin_interrupt_flag (unsigned int pin) |
Clears the interrupt flag of a pin. |
GPIO header for AVR32 UC3.
Copyright (C) 2001-2010 by egnite Software GmbH
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the copyright holders nor the names of contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
For additional information see http://www.ethernut.de/
Portions Copyright Atmel Corporation, see the following note.
This file contains basic GPIO driver functions.
Definition in file gpio.h.
#define GPIO_SUCCESS 0 |
Function successfully completed.
Definition at line 96 of file gpio.h.
Referenced by gpio_enable_module(), gpio_enable_module_pin(), and gpio_enable_pin_interrupt().
#define GPIO_INVALID_ARGUMENT 1 |
Input parameters are out of range.
Definition at line 97 of file gpio.h.
Referenced by gpio_enable_module_pin(), and gpio_enable_pin_interrupt().
#define GPIO_PIN_CHANGE 0 |
#define GPIO_RISING_EDGE 1 |
#define GPIO_FALLING_EDGE 2 |
int gpio_enable_module | ( | const gpio_map_t | gpiomap, |
unsigned int | size | ||
) |
Enables specific module modes for a set of pins.
gpiomap | The pin map. |
size | The number of pins in gpiomap. |
Definition at line 97 of file gpio.c.
References gpio_map_t::function, gpio_enable_module_pin(), GPIO_SUCCESS, and gpio_map_t::pin.
int gpio_enable_module_pin | ( | unsigned int | pin, |
unsigned int | function | ||
) |
Enables a specific module mode for a pin.
pin | The pin number. Refer to the product header file `uc3x.h' (where x is the part number; e.g. x = a0512) for module pins. E.g., to enable a PWM channel output, the pin number can be AVR32_PWM_3_PIN for PWM channel 3. |
function | The pin function. Refer to the product header file `uc3x.h' (where x is the part number; e.g. x = a0512) for module pin functions. E.g., to enable a PWM channel output, the pin function can be AVR32_PWM_3_FUNCTION for PWM channel 3. |
Definition at line 112 of file gpio.c.
References GPIO, GPIO_INVALID_ARGUMENT, and GPIO_SUCCESS.
Referenced by Avr32SpiBus0Select(), Avr32SpiBus1Select(), and gpio_enable_module().
void gpio_enable_gpio | ( | const gpio_map_t | gpiomap, |
unsigned int | size | ||
) |
Enables the GPIO mode of a set of pins.
gpiomap | The pin map. |
size | The number of pins in gpiomap. |
Definition at line 188 of file gpio.c.
References gpio_enable_gpio_pin(), and gpio_map_t::pin.
void gpio_enable_gpio_pin | ( | unsigned int | pin | ) |
Enables the GPIO mode of a pin.
pin | The pin number. Refer to the product header file `uc3x.h' (where x is the part number; e.g. x = a0512) for pin definitions. E.g., to enable the GPIO mode of PX21, AVR32_PIN_PX21 can be used. Module pins such as AVR32_PWM_3_PIN for PWM channel 3 can also be used to release module pins for GPIO. |
Definition at line 200 of file gpio.c.
References GPIO.
Referenced by gpio_enable_gpio().
void gpio_enable_pin_pull_up | ( | unsigned int | pin | ) |
void gpio_disable_pin_pull_up | ( | unsigned int | pin | ) |
int gpio_get_pin_value | ( | unsigned int | pin | ) |
int gpio_get_gpio_pin_output_value | ( | unsigned int | pin | ) |
Returns the output value set for a GPIO pin.
pin | The pin number. |
Definition at line 306 of file gpio.c.
References GPIO.
int gpio_get_gpio_open_drain_pin_output_value | ( | unsigned int | pin | ) |
Returns the output value set for a GPIO pin using open drain.
pin | The pin number. |
Definition at line 313 of file gpio.c.
References GPIO.
void gpio_set_gpio_pin | ( | unsigned int | pin | ) |
void gpio_clr_gpio_pin | ( | unsigned int | pin | ) |
void gpio_tgl_gpio_pin | ( | unsigned int | pin | ) |
void gpio_set_gpio_open_drain_pin | ( | unsigned int | pin | ) |
void gpio_clr_gpio_open_drain_pin | ( | unsigned int | pin | ) |
void gpio_tgl_gpio_open_drain_pin | ( | unsigned int | pin | ) |
void gpio_enable_pin_glitch_filter | ( | unsigned int | pin | ) |
Enables the glitch filter of a pin.
When the glitch filter is enabled, a glitch with duration of less than 1 clock cycle is automatically rejected, while a pulse with duration of 2 clock cycles or more is accepted. For pulse durations between 1 clock cycle and 2 clock cycles, the pulse may or may not be taken into account, depending on the precise timing of its occurrence. Thus for a pulse to be guaranteed visible it must exceed 2 clock cycles, whereas for a glitch to be reliably filtered out, its duration must not exceed 1 clock cycle. The filter introduces 2 clock cycles latency.
pin | The pin number. |
Definition at line 379 of file gpio.c.
References GPIO.
void gpio_disable_pin_glitch_filter | ( | unsigned int | pin | ) |
int gpio_enable_pin_interrupt | ( | unsigned int | pin, |
unsigned int | mode | ||
) |
Enables the interrupt of a pin with the specified settings.
pin | The pin number. |
mode | The trigger mode (GPIO_PIN_CHANGE, GPIO_RISING_EDGE or GPIO_FALLING_EDGE). |
Definition at line 430 of file gpio.c.
References GPIO, GPIO_INVALID_ARGUMENT, and GPIO_SUCCESS.
void gpio_disable_pin_interrupt | ( | unsigned int | pin | ) |
int gpio_get_pin_interrupt_flag | ( | unsigned int | pin | ) |