From e64ffcf77dd2bdccc06679dedfb5e5dd5d325c41 Mon Sep 17 00:00:00 2001 From: Thomas Ingleby Date: Fri, 11 Apr 2014 15:55:01 +0100 Subject: [PATCH] gpio: gpio in/out both work * Python example included. Signed-off-by: Thomas Ingleby --- examples/python/blink-io8.py | 14 ++++++++++++++ src/gpio/gpio.c | 5 +++++ 2 files changed, 19 insertions(+) create mode 100644 examples/python/blink-io8.py diff --git a/examples/python/blink-io8.py b/examples/python/blink-io8.py new file mode 100644 index 0000000..3641283 --- /dev/null +++ b/examples/python/blink-io8.py @@ -0,0 +1,14 @@ +#!/usr/bin/env python3 + +import pymaa as maa +import time + +x = maa.gpio_t() +maa.gpio_init(x, 26) +maa.gpio_dir(x, "out") + +while True: + maa.gpio_write(x,1) + time.sleep(0.2) + maa.gpio_write(x,0) + time.sleep(0.2) diff --git a/src/gpio/gpio.c b/src/gpio/gpio.c index 78ba514..4726ee7 100644 --- a/src/gpio/gpio.c +++ b/src/gpio/gpio.c @@ -63,6 +63,8 @@ gpio_mode(gpio_t *gpio, gpio_mode_t mode) { void gpio_dir(gpio_t *gpio, gpio_dir_t dir) { + fclose(gpio->value_fp); + gpio->value_fp = NULL; char filepath[64]; snprintf(filepath, 64, "/sys/class/gpio/gpio%d/direction", gpio->pin); int fd; @@ -85,6 +87,7 @@ gpio_read(gpio_t *gpio) { fseek(gpio->value_fp, SEEK_SET, 0); char buffer[2]; fread(buffer, 2, 1, gpio->value_fp); + fseek(gpio->value_fp, SEEK_SET, 0); return atoi(buffer); } @@ -95,6 +98,8 @@ gpio_write(gpio_t *gpio, int value) { } fseek(gpio->value_fp, SEEK_SET, 0); fprintf(gpio->value_fp, "%d", value); + fseek(gpio->value_fp, SEEK_SET, 0); + } void