Hardware Reference
In-Depth Information
118 lseek(fd, 0, SEEK_SET);
119 n = read(fd, buf, size of buf); /
Read value
/
120 assert(n > 0);
121 buf[n] = 0;
122
123 rc = sscanf(buf,"% d",&n);
124 assert(rc==1);
125 return n; /
Return value
/
126 }
127
128 /
129
Signal handler to quit the program :
130
/
131 static void
132 sigint_handler(int signo) {
133 is_signaled = 1; /
Signal to exit program
/
134 }
135
136 /
137
Main program :
138
/
139 int
140 main(int argc, char
argv) {
∗∗
141 int fd, v;
142
143 /
144
Get GPIO input pin to use :
145
/
146 if (argc != 2) {
147 usage: fprintf(stderr,"Usage: %s <gpio_in_pin>\n",
argv[0]);
148 return 1;
149 }
150 if ( sscanf(argv[1], "%d",&gpio_inpin) != 1 )
151 goto usage;
152 if ( gpio_inpin < 0 || gpio_inpin >= 32 )
153 goto usage;
154
155 signal(SIGINT,sigint_handler); /
Trap on SIGINT
/
156 fd = gpio_open_edge(gpio_inpin,"both");
157
158 puts("Monitoring for GPIO input changes: \n");
159
160 while ((v=gpio_poll(fd)) >= 0 ) {
/
/
161 printf("GPIO %d changed: %d\n",gpio_inpin,
v);
162 } while ( !is_signaled ); /
Block until input changes
Quit if ^C' d
/
163
Search WWH ::




Custom Search