1
0
mirror of https://github.com/xtacocorex/CHIP_IO synced 2025-07-20 04:43:21 +00:00
Files
CHIP_IO/docs/gpio.md

340 lines
5.8 KiB
Markdown

## CHIP_IO.GPIO
Import the GPIO module as follows
```python
import CHIP_IO.GPIO as GPIO
```
### toggle_debug()
Enable/Disable the Debug
* Parameters
None
* Examples
```python
GPIO.toggle_debug()
```
### is_chip_pro()
Function to report to the calling script if the SBC is a CHIP or a CHIP Pro
* Parameters
None
* Returns
int - 1 for CHIP Pro, 0 for CHIP
* Examples
```python
is_chip_pro = GPIO.is_chip_pro()
```
### setmode(mode)
Dummy function to maintain backwards compatibility with Raspberry Pi scripts.
### setup(channel, direction, pull_up_down=PUD_OFF, initial=None)
Setup a GPIO pin. If pin is already configure, it will reconfigure.
* Parameters
channel - GPIO pin
direction - INPUT or OUTPUT
pull_up_down - PUD_OFF, PUD_UP, PUD_DOWN (optional)
initial - Initial value for an OUTPUT pin (optional)
* Returns
None
* Examples
```python
GPIO.setup("CSID0", GPIO.IN)
GPIO.setup("CSID3", GPIO.OUT, initial=1)
GPIO.setup("CSID2", GPIO.IN, GPIO.PUD_UP)
```
### cleanup(channel)
Cleanup GPIO. If not channel input, all GPIO will be cleaned up
* Parameters
channel - GPIO pin (optional)
* Returns
None
* Examples
```python
GPIO.cleanup()
GPIO.cleanup("CSID3")
```
### output(channel, value)
Write a value to a GPIO pin.
* Parameters
channel - GPIO Pin
value - HIGH, LOW, 0, 1
* Returns
None
* Examples
```python
GPIO.output("XIO-P7", GPIO.HIGH)
GPIO.output("XIO-P7", GPIO.LOW)
GPIO.output("CSID0", 1)
GPIO.output("CSID0", 0)
```
### input(channel)
Read a GPIO pin once.
* Parameters
channel - GPIO Pin
* Returns
value - current value of the GPIO pin
* Examples
```python
value = GPIO.input("XIO-P7")
```
### read_byte(channel)
Read a GPIO pin multiple times to fill up 8 bits.
* Parameters
channel - GPIO Pin
* Returns
int - 8 bit value of the GPIO pin
* Examples
```python
bits = GPIO.read_byte("XIO-P7")
```
### read_word(channel)
Read a GPIO pin multiple times to fill up 16 bits.
* Parameters
channel - GPIO Pin
* Returns
word - 16 bit value of the GPIO pin
* Examples
```python
bits = GPIO.read_word("XIO-P7")
```
### add_event_detect(channel, edge, callback=None, bouncetime=0)
Add event detection to a pin. Refer to main table for which pins are able to use edge detection.
* Parameters
channel - GPIO Pin
edge - edge: RISING_EDGE, FALLING_EDGE, BOTH_EDGE
callback - callback function to be run when edge is detected (optional)
bouncetime - level debounce time period in ms (optional)
* Returns
None
* Examples
```python
GPIO.add_event_detect("XIO-P7", GPIO.RISING_EDGE)
GPIO.add_event_detect("AP-EINT3", GPIO.RISING_EDGE, mycallback)
GPIO.add_event_detect("XIO-P7", GPIO.FALLING_EDGE, bouncetime=30)
GPIO.add_event_detect("XIO-P7", GPIO.RISING_EDGE, mycallback, 45)
```
### remove_event_detect(channel)
Remove a pins event detection. Refer to main table for which pins are able to use edge detection.
* Parameters
channel - GPIO Pin
* Returns
None
* Examples
```python
GPIO.remove_event_detect("XIO-P7")
```
### event_detected(channel)
Function to determine if an event was detected on a pin. Pin must have an event detect added via add_event_detect() prior to calling this function. Refer to main table for which pins are able to use edge detection.
* Parameters
channel - GPIO Pin
* Returns
boolean - True if event was detected
* Examples
```python
have_event = GPIO.event_detected("XIO-P5")
```
### add_event_callback(channel, callback, bouncetime=0)
Add callback function to a pin that has been setup for edge detection. Refer to main table for which pins are able to use edge detection.
* Parameters
channel - GPIO Pin
callback - callback function to be run when edge is detected
bouncetime - level debounce time period in ms (optional)
* Returns
None
* Examples
```python
GPIO.add_event_callback("AP-EINT3", mycallback)
GPIO.add_event_callback("XIO-P7", mycallback, 45)
```
### wait_for_edge(channel, edge, timeout=-1)
Wait for an edge to be detected. This is a blocking function. Refer to main table for which pins are able to use edge detection.
* Parameters
channel - GPIO Pin
edge - edge: RISING_EDGE, FALLING_EDGE, BOTH_EDGE
timeout - timeout in milliseconds to wait before exiting function (optional)
* Returns
None
* Examples
```python
GPIO.wait_for_edge("XIO-P3", GPIO.RISING_EDGE)
GPIO.wait_for_edge("AP-EINT3", GPIO.BOTH_EDGE)
GPIO.wait_for_edge("I2S-DI", GPIO.FALLING_EDGE)
GPIO.wait_for_edge("XIO-P3", GPIO.RISING_EDGE, 40)
```
### gpio_function(channel)
Function to report get a GPIO Pins directioj
* Parameters
channel - GPIO Pin
* Returns
int - GPIO Pin direction
* Examples
```python
funct = GPIO.gpio_function("CSID0")
```
### setwarnings(state)
Function to enable/disable warning print outs. This may or may not work properly. toggle_debug() is a better bet.
* Parameters
state - 1 for enable, 0 for disable
* Returns
None
* Examples
```python
GPIO.set_warnings(1)
```
### get_gpio_base()
Function to get the SYSFS base value for the XIO pins on a CHIP
* Parameters
None
* Returns
int - sysfs base of the XIO, returns -1 on a CHIP Pro
* Examples
```python
base = GPIO.get_gpio_base()
```
### selftest(value)
Function to perform a selftest on the GPIO module
* Parameters
value - a value
* Returns
int - the input value
* Examples
```python
rtn = GPIO.selftest(0)
```
### direction(channel, direction)
Function to set the direction of an exported GPIO pin
* Parameters
channel - GPIO Pin
direction - Direction Pin is to take
* Returns
None
* Examples
```python
GPIO.set_direction("XIO-P0", GPIO.OUT)
GPIO.set_direction("XIO-P1", GPIO.IN)
```
[home](./index.md)