diff --git a/Development/Software/buttonInterrupt.c b/Development/Software/buttonInterrupt.c new file mode 100644 index 0000000000000000000000000000000000000000..4cc463b44705ec0e5337b2f665a58e4bfc963767 --- /dev/null +++ b/Development/Software/buttonInterrupt.c @@ -0,0 +1,46 @@ +/* + * buttonInterrupt.c + * + * Created on: Feb 10, 2016 + * Author: Nik + */ +#include <stdio.h> +#include <stdlib.h> +#include <mraa.h> + +static volatile int counter = 1; + +void interrupt(void* args) { + fprintf(stdout, "%d\n", counter); + counter++; +} + +int buttonInterrupt() { + + //initialize mraa + mraa_init(); + + //create mraa context + mraa_gpio_context context; + + //set context to GPIO 15 (J20:7) + context = mraa_gpio_init(15); + + if (context == NULL) { + return -1; + } else { + fprintf(stdout, "GPIO Initialized\n"); + } + + mraa_gpio_dir(context, MRAA_GPIO_IN); + + mraa_gpio_edge_t edge = MRAA_GPIO_EDGE_FALLING; + + mraa_gpio_isr(context, edge, &interrupt, NULL); + + // mraa_result_t result = mraa_gpio_isr_exit(context); + + // return result; + + return 0; +}