Digital Input Pins¶
Description¶
General-purpose digital input pins, for manual polling
This resource implements a single or an array of digital input pins, supporting manual polling from task code. The pins are mapped in the I/O Mapping Panel .
When the SCIF driver is initialized, the pins are configured to operate in digital input mode, with pull level as specified per resource I/O usage (no pull, pull-down or pull-up).
When the SCIF driver is uninitialized, the pins are returned to the MCU domain GPIO module, with desired pull level (no pull, pull-down or pull-up). Note that the uninitialization does not modify the GPIO module’s output enable settings, and it is assumed that the pins have not been configured as outputs.
Name and Label¶
A short name and a descriptive label must be specifed for each I/O usage:
- The name is used for references in task code, for example as parameter to
compaSelectGpioRef()
. For a name XYZ:- If selecting accessed by constant , a single constant
AUXIO_I_XYZ
is created automatically - If selecting accessed by look-up table , a data structure member
cfg.pAuxioIXyz[]
is created automatically
- If selecting accessed by constant , a single constant
- The label is displayed in the I/O Mapping Panel , and is also used in automatically generated code documentation
Examples¶
Reading Pin Input¶
// If the signal is high ...
U16 signal;
gpioGetInputValue(AUXIO_I_SIGNAL; signal);
if (signal == 1) {
... Do something here ...
}
Procedures Overview¶
Name | Brief description |
gpioCfgMode() |
Changes the mode of a single digital GPIO pin. More … |
gpioClearOutput() |
Clears a single GPIO output pin (to low). More … |
gpioDisableInputBuf() |
Disables the input buffer for a digital GPIO pin. More … |
gpioEnableInputBuf() |
Enables the input buffer for a digital GPIO pin. More … |
gpioGetInputValue() |
Gets the value of a single GPIO input pin. More … |
gpioSetOutput() |
Sets a single GPIO output pin (to high). More … |
gpioToggleOutput() |
Toggles a single GPIO output pin (to low if previously high, or to high if previously low). More … |
gpioWaitForLevel() |
Waits forever for the specified level on the specified GPIO pin. More … |
gpioWaitForLevelUs() |
Waits for the specified level on the specified I/O pin, or until the specified number of microseconds have elapsed. More … |
Constants¶
Name | Description |
GPIO_MODE_INPUT |
GPIO mode: Input |
GPIO_MODE_OPEN_DRAIN |
GPIO mode: Open-drain (can be driven low) |
GPIO_MODE_OPEN_SOURCE |
GPIO mode: Open-source (can be driven high) |
GPIO_MODE_OUTPUT |
GPIO mode: Output |
Global Variables¶
None.
Procedures¶
gpioCfgMode¶
Prototype: gpioCfgMode(auxio, mode)
Changes the mode of a single digital GPIO pin. The pin can be configured as output, input/analog, open-drain or open-source.
Use gpioEnableInputBuf()
and gpioDisableInputBuf()
to control the pin input buffer. The buffer should be disabled when a pin is allowed to float.
Note: For pins with internal pull-up or pull-down, the pull resistor is enabled also in output mode. Driving against a pull resistor increases current consumption.
Note: This procedure is more efficient if the auxio and mode parameters are specifed as constants (rather than variables).
Parameter value(s)¶
- auxio : The GPIO pin to be configured (index of AUX I/O pin)
- mode : New GPIO pin mode (GPIO_MODE_XYZ)
gpioClearOutput¶
Prototype: gpioClearOutput(auxio)
Clears a single GPIO output pin (to low).
Note: This procedure is more efficient if the auxio parameter is specifed as a constant (rather than a variable).
Parameter value(s)¶
- auxio : The GPIO pin to be cleared (index of AUX I/O pin)
gpioDisableInputBuf¶
Prototype: gpioDisableInputBuf(auxio)
Disables the input buffer for a digital GPIO pin.
The GPIO pin can only be read when the input buffer is enabled.
The input buffer should be disabled when the GPIO pin is floating.
Note: This procedure is more efficient if the auxio parameter is specifed as a constant (rather than a variable).
Parameter value(s)¶
- auxio : The GPIO pin to disable input buffer for (index of AUX I/O pin)
gpioEnableInputBuf¶
Prototype: gpioEnableInputBuf(auxio)
Enables the input buffer for a digital GPIO pin.
The GPIO pin can only be read when the input buffer is enabled.
The input buffer should be disabled when the GPIO pin is floating.
Note: This procedure is more efficient if the auxio parameter is specifed as a constant (rather than a variable).
Parameter value(s)¶
- auxio : The GPIO pin to enable input buffer for (index of AUX I/O pin)
gpioGetInputValue¶
Prototype: gpioGetInputValue(auxio; value)
Gets the value of a single GPIO input pin.
Parameter value(s)¶
- auxio : The GPIO pin to be checked (index of AUX I/O pin)
Return value(s)¶
- value : The GPIO pin value (1=high, 0=low)
gpioSetOutput¶
Prototype: gpioSetOutput(auxio)
Sets a single GPIO output pin (to high).
Note: This procedure is more efficient if the auxio parameter is specifed as a constant (rather than a variable).
Parameter value(s)¶
- auxio : The GPIO pin to be set (index of AUX I/O pin)
gpioToggleOutput¶
Prototype: gpioToggleOutput(auxio)
Toggles a single GPIO output pin (to low if previously high, or to high if previously low).
Note: This procedure is more efficient if the auxio parameter is specifed as a constant (rather than a variable).
Parameter value(s)¶
- auxio : The GPIO pin to be toggled (index of AUX I/O pin)
gpioWaitForLevel¶
Prototype: gpioWaitForLevel(auxio, #level)
Waits forever for the specified level on the specified GPIO pin.
Parameter value(s)¶
- auxio : The GPIO pin to be cleared (index of AUX I/O pin)
- #level : GPIO level to wait for
gpioWaitForLevelUs¶
Prototype: gpioWaitForLevelUs(auxio, #level, timeout)
Waits for the specified level on the specified I/O pin, or until the specified number of microseconds have elapsed.
Parameter value(s)¶
- auxio : The GPIO pin to be cleared (index of AUX I/O pin)
- #level : GPIO level to wait for
- timeout : Timeout value in microseconds (1-65535)