Grasshopper und LM75

Gast #877829
Lesenswert?

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?
Gast #911764
Lesenswert?

Hatte gleiches Problem:

Habe die slave addresse per kommandozeile übergeben.
Hatte Slave Addresse 72. Der Treiber scheint die Adresse zum 2 nach 
links zu schieben.
Bei meinem Beispiel konnte ich nur den Slave ansprechen mit übergebener
Adresse 32

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren