GPIO Routines. More...
#include "TIMotorLIB.h"
Go to the source code of this file.
Defines | |
#define | QUAL_OFFSET 0x1 |
#define | MUX_OFFSET 0x3 |
#define | DIR_OFFSET 0x5 |
#define | PUD_OFFSET 0x6 |
#define | DAT_OFFSET 0x0 |
#define | SET_OFFSET 0x1 |
#define | CLEAR_OFFSET 0x2 |
#define | TOGGLE_OFFSET 0x3 |
#define | GPIO_BIT_2_NAME(bit) GPIO ## bit |
#define | GPIO_PORT_BIT_2_NAME(port, bit) GPIO ## bit + (port<<3) |
#define | GET_MUX_BIT(bit) (bit < 16 ? bit : (bit-16)) |
#define | _GPIO0 GPIOA, 0 |
#define | _GPIO1 GPIOA, 1 |
#define | _GPIO2 GPIOA, 2 |
#define | _GPIO3 GPIOA, 3 |
#define | _GPIO4 GPIOA, 4 |
#define | _GPIO5 GPIOA, 5 |
#define | _GPIO6 GPIOA, 6 |
#define | _GPIO7 GPIOA, 7 |
#define | _GPIO8 GPIOA, 8 |
#define | _GPIO9 GPIOA, 9 |
#define | _GPIO10 GPIOA, 10 |
#define | _GPIO11 GPIOA, 11 |
#define | _GPIO12 GPIOA, 12 |
#define | _GPIO13 GPIOA, 13 |
#define | _GPIO14 GPIOA, 14 |
#define | _GPIO15 GPIOA, 15 |
#define | _GPIO16 GPIOA, 16 |
#define | _GPIO17 GPIOA, 17 |
#define | _GPIO18 GPIOA, 18 |
#define | _GPIO19 GPIOA, 19 |
#define | _GPIO20 GPIOA, 20 |
#define | _GPIO21 GPIOA, 21 |
#define | _GPIO22 GPIOA, 22 |
#define | _GPIO23 GPIOA, 23 |
#define | _GPIO24 GPIOA, 24 |
#define | _GPIO25 GPIOA, 25 |
#define | _GPIO26 GPIOA, 26 |
#define | _GPIO27 GPIOA, 27 |
#define | _GPIO28 GPIOA, 28 |
#define | _GPIO29 GPIOA, 29 |
#define | _GPIO30 GPIOA, 30 |
#define | _GPIO31 GPIOA, 31 |
#define | _GPIO32 GPIOB, 0 |
#define | _GPIO33 GPIOB, 1 |
#define | _GPIO34 GPIOB, 2 |
#define | _GPIO35 GPIOB, 3 |
#define | _GPIO36 GPIOB, 4 |
#define | _GPIO37 GPIOB, 5 |
#define | _GPIO38 GPIOB, 6 |
#define | _GPIO39 GPIOB, 7 |
#define | _GPIO40 GPIOB, 8 |
#define | _GPIO41 GPIOB, 9 |
#define | _GPIO42 GPIOB, 10 |
#define | _GPIO43 GPIOB, 11 |
#define | _GPIO44 GPIOB, 12 |
#define | _GPIO45 GPIOB, 13 |
#define | _GPIO46 GPIOB, 14 |
#define | _GPIO47 GPIOB, 15 |
#define | _GPIO48 GPIOB, 16 |
#define | _GPIO49 GPIOB, 17 |
#define | _GPIO50 GPIOB, 18 |
#define | _GPIO51 GPIOB, 19 |
#define | _GPIO52 GPIOB, 20 |
#define | _GPIO53 GPIOB, 21 |
#define | _GPIO54 GPIOB, 22 |
#define | _GPIO55 GPIOB, 23 |
#define | _GPIO56 GPIOB, 24 |
#define | _GPIO57 GPIOB, 25 |
#define | _GPIO58 GPIOB, 26 |
#define | _GPIO59 GPIOB, 27 |
#define | _GPIO60 GPIOB, 28 |
#define | _GPIO61 GPIOB, 29 |
#define | _GPIO62 GPIOB, 30 |
#define | _GPIO63 GPIOB, 31 |
#define | _GPIO64 GPIOC, 0 |
#define | _GPIO65 GPIOC, 1 |
#define | _GPIO66 GPIOC, 2 |
#define | _GPIO67 GPIOC, 3 |
#define | _GPIO68 GPIOC, 4 |
#define | _GPIO69 GPIOC, 5 |
#define | _GPIO70 GPIOC, 6 |
#define | _GPIO71 GPIOC, 7 |
#define | _GPIO72 GPIOC, 8 |
#define | _GPIO73 GPIOC, 9 |
#define | _GPIO74 GPIOC, 10 |
#define | _GPIO75 GPIOC, 11 |
#define | _GPIO76 GPIOC, 12 |
#define | _GPIO77 GPIOC, 13 |
#define | _GPIO78 GPIOC, 14 |
#define | _GPIO79 GPIOC, 15 |
#define | _GPIO80 GPIOC, 16 |
#define | _GPIO81 GPIOC, 17 |
#define | _GPIO82 GPIOC, 18 |
#define | _GPIO83 GPIOC, 19 |
#define | _GPIO84 GPIOC, 20 |
#define | _GPIO85 GPIOC, 21 |
#define | _GPIO86 GPIOC, 22 |
#define | _GPIO87 GPIOC, 23 |
#define | GPIO_LOW (Uint32)0 |
#define | GPIO_HIGH (Uint32)1 |
Enumerations | |
enum | GPIO_PORT { GPIOA = 0, GPIOB = 0x4, GPIOC = 0x8 } |
enumeration for port selection More... | |
enum | GPIO_DIR { GPIO_INPUT, GPIO_OUTPUT } |
enumeration for port direction More... | |
enum | GPIO_PUD { GPIO_PULL_EN, GPIO_PULL_DIS } |
Disable/Enable internal pullup resistor. More... | |
enum | GPIO_PERPH { GPIO, PERPH_1, PERPH_2, PERPH_3 } |
Select peripheral. More... | |
Functions | |
static void | ConfigureGPIOPort (GPIO_PORT port, Uint16 bit, GPIO_DIR dir, GPIO_PERPH perPh, GPIO_PUD pud, Uint32 val) |
Configure pin as a GPIO. | |
static void | WriteGPIOPort (GPIO_PORT port, Uint16 bit, Uint32 val) |
static void | ToggleGPIOPort (GPIO_PORT port, Uint16 bit) |
static void | SetGPIOPort (GPIO_PORT port, Uint16 bit) |
static void | ClearGPIOPort (GPIO_PORT port, Uint16 bit) |
static unsigned | ReadGPIOPort (GPIO_PORT port, Uint16 bit) |
GPIO Routines.
File Name: gpio.h Project: TIMotorLIB
TI Doc: SPRS439
This module allows to easy configure and use GPIO ports. GPIO ports are multiplexed as shown in TI doc (SPRUFB, pp 61 to 65). Up to three different peripherals can use the same port (SPRUFB, pp 75 to 77). To configure a paricular GPIO line for a particular function, see TI doc (SPRUFB, pp 67).
Definition in file gpio.h.
#define GPIO_HIGH (Uint32)1 |
#define GPIO_PORT_BIT_2_NAME | ( | port, | |||
bit | ) | GPIO ## bit + (port<<3) |
enum GPIO_DIR |
enum GPIO_PERPH |
enum GPIO_PORT |
enum GPIO_PUD |
static void ClearGPIOPort | ( | GPIO_PORT | port, | |
Uint16 | bit | |||
) | [inline, static] |
static void ConfigureGPIOPort | ( | GPIO_PORT | port, | |
Uint16 | bit, | |||
GPIO_DIR | dir, | |||
GPIO_PERPH | perPh, | |||
GPIO_PUD | pud, | |||
Uint32 | val | |||
) | [inline, static] |
Configure pin as a GPIO.
If dir = GPIO_OUTPUT, generated code is equivalent to:
GpioCtrlRegs.GPYPUD.bit.GPIOX = pull; // Enable pullup on GPIOX
GpioDataRegs.GPYSET.bit.GPIOX = val; // Load output latch
GpioCtrlRegs.GPYMUXx.bit.GPIOX = 0; // General purpouse output
GpioCtrlRegs.GPYDIR.bit.GPIOX = 1; // GPIOX = output
If dir = GPIO_INPUT, generated code is equivalent to:
GpioCtrlRegs.GPYPUD.bit.GPIOX = pull; // Enable pullup on GPIOX
GpioCtrlRegs.GPYMUXx.bit.GPIOX = 0; // General purpouse input
GpioCtrlRegs.GPYDIR.bit.GPIOX = 0; // GPIOX = input
port | Selected port (GPIOA/GPIOB/GPIOC) | |
bit | Selected line (0-31) | |
dir | Direction (GPIO_INPUT/GPIO_OUTPUT) | |
perPh | Peripheral (GPIO/PERPH_1/PERPH_2/PERPH_3) | |
pud | Disable/enable pullup resistor (GPIO_PULL_DIS/GPIO_PULL_EN) | |
val | Default value to load in the latch register using GPIOxSET |
static unsigned ReadGPIOPort | ( | GPIO_PORT | port, | |
Uint16 | bit | |||
) | [inline, static] |
static void SetGPIOPort | ( | GPIO_PORT | port, | |
Uint16 | bit | |||
) | [inline, static] |
static void ToggleGPIOPort | ( | GPIO_PORT | port, | |
Uint16 | bit | |||
) | [inline, static] |
Toggles value in selected line at given port
port | Selected port (GPIOA/GPIOB/GPIOC) | |
bit | Selected bit (0-31) |