RocketLogger  1.1
gpio.h
Go to the documentation of this file.
1 
31 #ifndef GPIO_H_
32 #define GPIO_H_
33 
34 #include <fcntl.h>
35 #include <poll.h>
36 #include <stdio.h>
37 #include <stdlib.h>
38 #include <string.h>
39 #include <unistd.h>
40 
41 #include "log.h"
42 #include "types.h"
43 
45 #define GPIO_PATH "/sys/class/gpio/"
46 #define MIN_BUTTON_TIME 100000
48 
52 typedef enum direction {
53  IN,
54  OUT
55 } rl_direction;
56 
60 typedef enum edge {
61  NONE,
65 } rl_edge;
66 
67 // gpio unexport
68 int gpio_unexport(int num);
69 
70 // gpio export
71 int gpio_export(int num);
72 
73 // set direction
74 int gpio_dir(int num, rl_direction dir);
75 
76 // gpio value
77 int gpio_set_value(int num, int val);
78 int gpio_get_value(int num);
79 
80 // interrupt
81 int gpio_interrupt(int num, rl_edge e);
82 int gpio_wait_interrupt(int num, int timeout); // timout<0 -> infinite
83 
84 #endif /* GPIO_H_ */
enum edge rl_edge
int gpio_wait_interrupt(int num, int timeout)
Definition: gpio.c:211
Interrupt on falling edge.
Definition: gpio.h:63
int gpio_unexport(int num)
Definition: gpio.c:38
Interrupt on rising edge.
Definition: gpio.h:62
int gpio_interrupt(int num, rl_edge e)
Definition: gpio.c:116
int gpio_dir(int num, rl_direction dir)
Definition: gpio.c:87
GPIO read mode.
Definition: gpio.h:53
GPIO write mode.
Definition: gpio.h:54
int gpio_get_value(int num)
Definition: gpio.c:184
Interrupt on both edges.
Definition: gpio.h:64
edge
Definition: gpio.h:60
No interrupt.
Definition: gpio.h:61
direction
Definition: gpio.h:52
int gpio_export(int num)
Definition: gpio.c:62
enum direction rl_direction
int gpio_set_value(int num, int val)
Definition: gpio.c:155