libpruio  0.2
Input/Output driver for digital/analog lines on Beagleboard hardware
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
button.c
Go to the documentation of this file.
1 
19 #define _GNU_SOURCE 1
21 #include "stdio.h"
22 #include <termios.h>
23 #include <unistd.h>
24 #include <errno.h>
25 #include <sys/types.h>
26 #include <sys/time.h>
27 #include "../c_wrapper/pruio.h"
28 #include "../c_wrapper/pruio_pins.h"
29 
31 #define PIN P8_07
32 
40 int
41 isleep(unsigned int mseconds)
42 {
43  fd_set set;
44  struct timeval timeout;
45 
46  /* Initialize the file descriptor set. */
47  FD_ZERO(&set);
48  FD_SET(STDIN_FILENO, &set);
49 
50  /* Initialize the timeout data structure. */
51  timeout.tv_sec = 0;
52  timeout.tv_usec = mseconds * 1000;
53 
54  return TEMP_FAILURE_RETRY(select(FD_SETSIZE,
55  &set, NULL, NULL,
56  &timeout));
57 }
58 
60 int main(int argc, char **argv)
61 {
62  pruIo *io = pruio_new(PRUIO_DEF_ACTIVE, 0x98, 0, 1);
63  do {
64  if (io->Errr) {
65  printf("initialisation failed (%s)\n", io->Errr); break;}
66 
67  if (pruio_config(io, 1, 0x1FE, 0, 4)) {
68  printf("config failed (%s)\n", io->Errr); break;}
69 
70  struct termios oldt, newt; // make terminal non-blocking
71  tcgetattr( STDIN_FILENO, &oldt );
72  newt = oldt;
73  newt.c_lflag &= ~( ICANON | ECHO );
74  newt.c_cc[VMIN] = 0;
75  newt.c_cc[VTIME] = 0;
76  tcsetattr(STDIN_FILENO, TCSANOW, &newt);
77 
78  while(!isleep(1)) { // run loop until keystroke
79  printf("\r%1X", pruio_gpio_Value(io, PIN));
80  fflush(STDIN_FILENO);
81  }
82  tcsetattr(STDIN_FILENO, TCSANOW, &oldt); // reset terminal
83 
84  printf("\n");
85  } while (0);
86 
87  pruio_destroy(io); /* destroy driver structure */
88  return 0;
89 }
int isleep(unsigned int mseconds)
Wait for keystroke or timeout.
Definition: button.c:41
#define PIN
The header pin to use.
Definition: button.c:31
VAR io
create new driver UDT
Definition: 1.bas:21
Wrapper structure for PruIo.
Definition: pruio.h:403
pruIo * pruio_new(uint16 Act, uint8 Av, uint32 OpD, uint8 SaD)
Wrapper function for the constructor PruIo::PruIo().
char * Errr
pointer for error messages
Definition: pruio.h:411
void pruio_destroy(pruIo *Io)
Wrapper function for the destructor PruIo::~PruIo.
activate all devices
Definition: pruio.h:385
uint32 pruio_gpio_Value(pruIo *Io, uint8 Ball)
Wrapper function for GpioUdt::Value().
int main(int argc, char **argv)
The main function.
Definition: button.c:60
char * pruio_config(pruIo *Io, uint32 Samp, uint32 Mask, uint32 Tmr, uint16 Mds)
Wrapper function for PruIo::config().