Wenn ich ehrlich bin, ist mir das noch ne Ecke zu hoch.
Kannst du diene Erklärung vielleicht ein bisschen anfängerfreundlicher formulieren?
Es hapert schon daran, das ich nicht weiß, was ich für einen Rückgabewert bekomme.
Wenn ich buf[0] einfach ausgebe, bekomme ich etwas, das aussieht wir ein Rechteck mit 4 Ziffern drin.
Ist das ein Byte, das mittels lsb und msb in Binärcode umgeschrieben wird?
Können wir den Code vielleicht mal auseinander nehmen?
Code:
(fd = open(fileName, O_RDWR)
Hier wird festgelegt, dass auf ic2 zugegriffen wird.
Was bedeutet das O_ vor dem ReadWrite?
Code:
ioctl(fd, I2C_SLAVE, address)
ioctl = input output control?
Sensor dieser Adresse als I2C_SLAVE definieren
'buf' an Gerät 'fd' übergeben. Wofür steht die 1?
Steht buf also für ein Array, das 10 byte = 10 Register beinhaltet, die jeweils 8 bit groß sind?
Wieder diese 1. Hier wird das Array Buf also dann mit den Sensordaten gefüllt.
Code:
lsb = buf[0];
temp = (msb<<8) | lsb;
Hier wird das erste Register, welches die Temperatur beinhaltet, aus dem Array gezogen und an lsb übergeben.
In temp wird der Rückgabewert gespeichert, der mittels irgendwie umformatiert wird. Was geschieht hier genau?
Und hier haben wir schon die nächste Transformation, die ich nicht verstehe.
Wofür werden die Pina ADD0 und ADD1 benötigt?
Woher kommt der Wert Hex 90?
Wie kann ich die Hex-Codes alla 0x01, 0x00, etc. interpretieren bzgl. der am Anfang stehenden "0x"?
Das sind vielleicht ein paar viele Fragen...aber ich häng schon den ganzen Tag davor und werd nicht so wirklich schlau darauß.
Irgendwie hab ich kein wirklich vollständiges Tutorial gefunden.
Lesezeichen