Thank you for the code. I have still one problem. When I want to compile, it cannot find the different types of the I2C_DATA and I2C_LCD structure:
test1.c: In function `main': test1.c:33: `I2C_LCD' undeclared (first use in this function) test1.c:33: (Each undeclared identifier is reported only once test1.c:33: for each function it appears in.) test1.c:33: parse error before "i2clcd" test1.c:34: `i2clcd' undeclared (first use in this function) test1.c:38: `I2C_LCDINIT' undeclared (first use in this function) test1.c:39: `I2C_LCDPRINT' undeclared (first use in this function) test1.c:44: `I2C_DATA' undeclared (first use in this function) test1.c:44: parse error before "i2cdata" test1.c:45: `i2cdata' undeclared (first use in this function) test1.c:51: `I2C_READDATA' undeclared (first use in this function) make: *** [test1.o] Error 1 Do I have to make this structure by myself or what is the problem? Regards Steff --- In [email protected], [EMAIL PROTECTED] wrote: > > here is the code > > #include "stdio.h" > #include "stdlib.h" > #include "unistd.h" > #include "sys/ioctl.h" > #include "fcntl.h" > #include "time.h" > #include "string.h" > #include <asm/etraxi2c.h> > > // Global variables > int fd_i2c; > > > int I2C_Open(void) { > fd_i2c = open("/dev/i2c", O_RDWR); > if (fd_i2c <= 0) { > printf("I2C: open error on /dev/i2c\n"); > return(-1); > } > > return(0); > } > > > > void I2C_Close(void) { > close(fd_i2c); > } > > int main(int argc, char **argv) { > int retcode; > > retcode = I2C_Open(); > if (retcode != 0) { > exit(1); > } > > > I2C_LCD i2clcd; > i2clcd.slave=64; > i2clcd.x = 1; > i2clcd.y = 1; > sprintf(i2clcd.text, "Hello World"); > ioctl(fd_i2c, _IO(ETRAXI2C_IOCTYPE, I2C_LCDINIT), &i2clcd); > ioctl(fd_i2c, _IO(ETRAXI2C_IOCTYPE, I2C_LCDPRINT), &i2clcd); > i2clcd.y = 2; > i2clcd.x = 3; > ioctl(fd_i2c, _IO(ETRAXI2C_IOCTYPE, I2C_LCDPRINT), &i2clcd); > > I2C_DATA i2cdata; > i2cdata.length = 2; > i2cdata.slave = 66; > > > while(1){ > ioctl(fd_i2c, _IO(ETRAXI2C_IOCTYPE, I2C_READDATA), &i2cdata); > printf("%d %d\n", i2cdata.data[0], i2cdata.data[1]); > }; > > > I2C_Close(); > > return(0); > } // end main() >
