RocketLogger  1.0
gpio.h
Go to the documentation of this file.
1 
5 #include <stdio.h>
6 #include <stdlib.h>
7 #include <string.h>
8 #include <unistd.h>
9 #include <fcntl.h>
10 #include <poll.h>
11 
12 #include "types.h"
13 #include "log.h"
14 
16 #define GPIO_PATH "/sys/class/gpio/"
17 #define MIN_BUTTON_TIME 100000
19 
20 
24 typedef enum direction {
25  IN,
27 } rl_direction;
28 
32 typedef enum edge {
33  NONE,
37 } rl_edge;
38 
39 // gpio unexport
40 int gpio_unexport(int num);
41 
42 // gpio export
43 int gpio_export(int num);
44 
45 // set direction
46 int gpio_dir(int num, rl_direction dir);
47 
48 // gpio value
49 int gpio_set_value(int num, int val);
50 int gpio_get_value(int num);
51 
52 // interrupt
53 int gpio_interrupt(int num, rl_edge e);
54 int gpio_wait_interrupt(int num, int timeout); // timout<0 -> infinite
55 
enum edge rl_edge
int gpio_wait_interrupt(int num, int timeout)
Definition: gpio.c:188
Interrupt on falling edge.
Definition: gpio.h:35
int gpio_unexport(int num)
Definition: gpio.c:12
Interrupt on rising edge.
Definition: gpio.h:34
int gpio_interrupt(int num, rl_edge e)
Definition: gpio.c:92
int gpio_dir(int num, rl_direction dir)
Definition: gpio.c:62
GPIO read mode.
Definition: gpio.h:25
GPIO write mode.
Definition: gpio.h:26
int gpio_get_value(int num)
Definition: gpio.c:161
Interrupt on both edges.
Definition: gpio.h:36
edge
Definition: gpio.h:32
No interrupt.
Definition: gpio.h:33
direction
Definition: gpio.h:24
int gpio_export(int num)
Definition: gpio.c:37
enum direction rl_direction
int gpio_set_value(int num, int val)
Definition: gpio.c:132