diff --git a/examples/blink-io8.cpp b/examples/blink-io8.cpp new file mode 100644 index 0000000..5eeae17 --- /dev/null +++ b/examples/blink-io8.cpp @@ -0,0 +1,20 @@ +#include "stdio.h" + +#include "maa.h" + +int +main(int argc, char **argv) +{ + fprintf(stdout, "MAA Version: %d\n Starting Blinking on IO8", get_version()); + gpio_t gpio; + gpio_init(&gpio, 26); + gpio_dir(&gpio, "out"); + + while(1){ + gpio_write(&gpio, 0); + sleep(1); + gpio_write(&gpio, 1); + sleep(1); + } + return 0; +} diff --git a/src/gpio/gpio.c b/src/gpio/gpio.c index 4726ee7..73bfeb6 100644 --- a/src/gpio/gpio.c +++ b/src/gpio/gpio.c @@ -63,19 +63,20 @@ 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; +//if(gpio->value_fp != NULL) { +// fclose(gpio->value_fp); +// gpio->value_fp = NULL; +// } char filepath[64]; snprintf(filepath, 64, "/sys/class/gpio/gpio%d/direction", gpio->pin); - int fd; - fd = open(filepath, O_WRONLY); - if(fd == -1) { + FILE *direction; + if((direction = fopen(filepath, "w")) == NULL) { fprintf(stderr, "Failed to open direction for writing!\n"); - } else if(write(fd, dir, 5) == -1) { - fprintf(stderr, "Failed to set direction\n"); } else { - close(fd); + fprintf(direction, dir); + fclose(direction); + gpio->value_fp = NULL; } }