6 #include <linux/i2c-dev.h>
10 #include <ncurses.h> /* sudo apt-get install libncurses5-dev */
12 // gcc -o pcf8591_2 -lncurses pcf8591_2.c
14 int main( int argc, char **argv )
20 unsigned char command[2];
21 unsigned char value[4];
23 useconds_t delay = 5000;
25 char *dev = "/dev/i2c-0";
34 nodelay(stdscr, true);
38 mvaddstr(10, 0, "Brightness");
39 mvaddstr(12, 0, "Temperature");
41 mvaddstr(16, 0, "Resistor");
43 fd = open(dev, O_RDWR );
46 perror("Opening i2c device node\n");
50 r = ioctl(fd, I2C_SLAVE, addr);
53 perror("Selecting i2c device\n");
60 for(i = 0; i < 4; i++)
63 command[0] = 0x40 | ((i + 1) & 0x03); // output enable | read input i
64 r = write(fd, &command, 2);
66 // the read is always one step behind the selected input
67 r = read(fd, &value[i], 1);
70 perror("reading i2c device\n");
74 sprintf(str, "%3d", value[i]);
75 mvaddstr(10+i+i, 12, str);
76 value[i] = value[i] / 4;
79 for(j = 0; j < 64; j++)