Hallo!
Ich versuche von einem Mega328 (Master) Daten von einem
Beschleunigungssensor MPU6050 (Slave) abzufragen. Die Adresse des MPU
ist 0x68; mit dem Beschreiben des Registers 0x6B wird er aus dem Schlaf
geweckt.
Nun will ich das Register 0x3B auslesen, welches laut Register das high
byte der Beschleunigungsmessung in x-Richtung beinhaltet (register name
ACCEL_XOUT_H).
Allerdings scheint beim Empfangen der Daten etwas schiefzulaufen,
insbes. gibt mir meine Funktion I2CReceiveData() nichts zurück. Was
läuft hier schief?
Das Data-direction-bit für das auslesen des Registers setze ich mit:
1 | int SLA_R = DeviceAdress;
|
2 | SLA_R |= (1 << 1);
|
3 | I2CwriteData(SLA_R); //SLA+R
|
An der Verdrahtung leigt es schonmal nicht: der code eines Kollegen
(andere Sprache) läuft auf meiner hardware einwandfrei und liefert zudem
die gewünschten Daten.
Grüße
CPL
p.s.
Ich hoffe mal den Quellcode kann man so lesen; Ansonsten hänge ich den
nochmal direkt per code im Browser rein oder sehe zu wie ich den
gescheit formatiert bekomme.