The DIO (General Purpose IO) can be input or output as desired under the control of the firmware.
Also commonly referred to as GPIO, but referred to as DIO throughout this manual.
The following can be done with general purpose IO:
There are 20 DIOs, numbered 0 to 19. These are called in order DIO0 … DIO19. The following APIs allow you to specify the DIO number directly.
vPortAsInput(10); // set DIO10 as input
bool_t bPort = bPortRead(10);
// TRUE: DIO10 is LO(GND) level
// FALSE: DIO10 is HIGH(VCC) level
For TWELITE wireless microcontrollers, the port state at power-on reset is at the High (Vcc) level, so in principle TWELITE NET sets the High (Vcc) level to 0 and the Lo (GND) level to 1.
On power-up, all ports are initialised in the following state
To change a port to an input, call vPortAsInput().
#define PORT_DI1 11 // DIO11
vPortAsInput(PORT_DI1);
To read the status of a port, call bPortRead().
bool_t bPortStat;
bPortStat = bPortRead(PORT_DI1);
To change the port to an output, call vPortAsOutput(c). Also, to set the value of a port, call vPortSetLo(), vPortSetHi(), or vPortSet_TrueAsLo().
#define PORT_DO1 18 // DIO18
vPortSet_TrueAsLo(PORT_DO1, TRUE); // TRUE: set Lo
vPortAsOutput(PORT_DO1);
t is recommended to set the output setpoint of the port before setting the output. This is because when observing the voltage of the port from the outside, it may behave, for example, to drop to GND for a moment and then return to the Vcc level.
You can stop the pull-up by calling vPortDisablePullup().
#define PORT_DI1 11 // DIO11
vPortDisablePullup(PORT_DI1);
vPortAsInput(PORT_DI1);
Stopping pull-ups saves power in the following cases
However, on ports where pull-ups have been stopped, care should be taken to use