Hi,
also erstmal, ich progge in Bascom, deswegen wirds dir nicht viel helfen, der Ablauf sollte aber 1:1 der gleiche sein.
Initialisieren:
Gyro auslesen: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
ACC 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
Gruß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
Chris







Zitieren

Lesezeichen