Genau an dem bin ich gerade dran.
Der Code den ich zu Beginn in meinem Post schonmal gepostet hab:
http://www.mikrocontroller.net/attac...u_MinIMU-9.bas
Dieser enthält:
Code:
Sub GYRO_ini() ' L3G4200D_CTRL_REG4_Wert = &b00000000 '250 dps full scale L3G4200D_CTRL_REG4_Wert = &b00010000 '500 dps full scale ' L3G4200D_CTRL_REG4_Wert = &b00100000 '2000 dps full scale call Register_schreiben(L3G4200DSlaveid , L3G4200D_CTRL_REG1 , &b00001111) call Register_schreiben(L3G4200DSlaveid , L3G4200D_CTRL_REG2 , &b00100110) call Register_schreiben(L3G4200DSlaveid , L3G4200D_CTRL_REG3 , &b00000000) call Register_schreiben(L3G4200DSlaveid , L3G4200D_CTRL_REG4 , L3G4200D_CTRL_REG4_Wert) call Register_schreiben(L3G4200DSlaveid , L3G4200D_CTRL_REG5 , &b00000000) call Register_schreiben(L3G4200DSlaveid , L3G4200D_REFERENCE , &b00000000) end sub
Ich habe das jetzt mal so vor der DO Loop umgesetzt:
Code:
I2cstart
I2cwbyte &HD2
I2cwbyte &H20
I2cwbyte &B00001111
I2cstop
I2cstart
I2cwbyte &HD2
I2cwbyte &H21
I2cwbyte &BB00100110
I2cstop
I2cstart
I2cwbyte &HD2
I2cwbyte &H22
I2cwbyte &B00000000
I2cstop
I2cstart
I2cwbyte &HD2
I2cwbyte &H23
I2cwbyte &B00010000
I2cstop
I2cstart
I2cwbyte &HD2
I2cwbyte &H24
I2cwbyte &B00000000
I2cstop
I2cstart
I2cwbyte &HD2
I2cwbyte &H25
I2cwbyte &B00000000
I2cstop
Jetzt bekomme ich jede Sekunde wahllos Werte ausgespuckt, selbst wenn der Sensor ruhig liegt schwanken diese zwischen 30 und 200 etc... Aber ich bekomme schon mal Werte übertragen.
Der gute Mann ließt die Werte so ein:
Code:
Sub X_GYRO_lesen() Gyro_Status_Reg = Register_lesen(L3G4200DSlaveid , L3G4200D_STATUS_REG) if Gyro_Status_Reg.0 = 1 then call GYRO_BDU_EIN Gyro_X_h = Register_lesen(L3G4200DSlaveid , L3G4200D_OUT_X_H) Gyro_X_l = Register_lesen(L3G4200DSlaveid , L3G4200D_OUT_X_L) call GYRO_BDU_AUS Gyro_X = MAKEINT(Gyro_X_l , Gyro_X_h) end if End Sub
Was hat das mit dem
call GYRO_BDU_EIN
bzw
call GYRO_BDU_AUS
auf sich?
Liegt dort das letzte Rätsel versteckt? Diesen Teil versteh ich nicht ganz.
- - - Aktualisiert - - -
Ich habe jetzt mal den BascomCode von dem anderen Forum genommen und nur auf meine Anwendung gekürzt. Funktioniert 1A!
Jetzt versuche ich das mal Schritt für Schritt zu meinem Ursprünglichen Code umzuschreiben. Wenn ich den Fehler gefunden habe geb ich euch Bescheid!
Danke für die Unterstützung!
Lesezeichen