Hi,

also erstmal, ich progge in Bascom, deswegen wirds dir nicht viel helfen, der Ablauf sollte aber 1:1 der gleiche sein.

Initialisieren:
Code:
Sub Init_mpu()


   '--- (25) Sample Rate Divider = 1 ---
   I2cstart #2                                              'start condition
   I2cwbyte Mpuaddw , #2                                    'write adress of MPU-6050
   I2cwbyte 25 , #2                                         'Register 25 Sample Rate Divider (1..8 kHz)
   I2cwbyte &B00000000 , #2                                 'Divider set to 1   (soll)
   I2cstop #2                                               'stop condition

   '--- (26) DLPF = 42/44 Hz ---
   I2cstart #2                                              'start condition
   I2cwbyte Mpuaddw , #2                                    'write adress of MPU-6050
   I2cwbyte 26 , #2                                         'Register 26 DLPF_CFG (digital lowpass filter) Configuration
   I2cwbyte &B00000011 , #2                                 'Bits 0..2 = 011 (3) - ACC:44Hz, 4.9ms; Gyro:42Hz, 4.8ms
   I2cstop #2                                               'stop condition

   '--- (27) Gyro Full Range = +-2000°/s ---
   I2cstart #2                                              'start condition
   I2cwbyte Mpuaddw , #2                                    'write adress of MPU-6050
   I2cwbyte 27 , #2                                         'Register 27 Gyro Configuration
   I2cwbyte &B00011000 , #2                                 'Bits 3+4 = 11 - Full Scale Range: +/-2000°/s
   I2cstop #2                                               'stop condition

   '--- (28) ACC Full Range = +-2g ---
   I2cstart #2                                              'start condition
   I2cwbyte Mpuaddw , #2                                    'write adress of MPU-6050
   I2cwbyte 28 , #2                                         'Register 28 ACC Configuration
   I2cwbyte &B00000000 , #2                                 'Bits 3+4 = 00 - Full Scale Range: +/-2g / No High Pass Filter
   I2cstop #2                                               'stop condition

   '--- (107) Power Management 1 ---
   I2cstart #2                                              'start condition
   I2cwbyte Mpuaddw , #2                                    'write adress of MPU-6050
   I2cwbyte 107 , #2                                        'Register 107 Power Management 1
   I2cwbyte &B00001011 , #2                                 'No Reset / No Sleep / No Cycle / Temp_Sens: Dis / Clock Source: Z-Gyro
   I2cstop #2


End Sub
Gyro auslesen:
Code:
Sub Read_gyro()


   I2cstart #2
   I2cwbyte Mpuaddw , #2
   I2cwbyte 67 , #2
   I2crepstart #2
   I2cwbyte Mpuaddr , #2

   I2crbyte Tmp_gyrox(2) , Ack , #2
   I2crbyte Tmp_gyrox(1) , Ack , #2

   I2crbyte Tmp_gyroy(2) , Ack , #2
   I2crbyte Tmp_gyroy(1) , Ack , #2

   I2crbyte Tmp_gyroz(2) , Ack , #2
   I2crbyte Tmp_gyroz(1) , Nack , #2

   I2cstop #2


   Gyrox = Gx
   Gyroy = 0 - Gy
   Gyroz = 0 - Gz

End Sub
ACC auslesen:
Code:
Sub Read_acc()


   I2cstart #2
   I2cwbyte Mpuaddw , #2
   I2cwbyte 59 , #2
   I2crepstart #2
   I2cwbyte Mpuaddr , #2

   I2crbyte Tmp_accx(2) , Ack , #2
   I2crbyte Tmp_accx(1) , Ack , #2

   I2crbyte Tmp_accy(2) , Ack , #2
   I2crbyte Tmp_accy(1) , Ack , #2

   I2crbyte Tmp_accz(2) , Ack , #2
   I2crbyte Tmp_accz(1) , Nack , #2

   I2cstop #2

   Accx = Ax
   Accy = Ay
   Accz = Az


End Sub
Gruß
Chris