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