Hallo,
ich will mit dem Grasshopper und einem LM75 die Temperatur messen. Der
LM75 hängt am I2C Bus, die Slave Adresse ist 111 und die Treiber für I2C
sind in den Kernel einkompiliert ('/dev/i2c-0' habe ich mit 'mknod i2c-0
c 89 0' erstellt).
1 | #include <stdio.h>
|
2 | #include <stdlib.h>
|
3 | #include <fcntl.h>
|
4 | #include <linux/i2c-dev.h>
|
5 |
|
6 | int main() {
|
7 | int file, addr = (1<<6)|/*(0<<5)|(0<<4)|*/(1<<3) | (1<<2)|(1<<1)|(1);
|
8 |
|
9 | if ((file = open("/dev/i2c-0", O_RDWR)) < 0) {
|
10 | printf("error opening device!\n");
|
11 | exit(1);
|
12 | }
|
13 |
|
14 | if (ioctl(file, I2C_SLAVE, addr) < 0) {
|
15 | printf("error setting slave address!\n");
|
16 | exit(1);
|
17 | }
|
18 |
|
19 | return 0;
|
20 | }
|
Leider funktioniert das Einstellen der Slave Adresse nicht. Woran könnte
das liegen?