Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of Beschleunigungssensor by
Revision 1:f8c0ebd6096c, committed 2015-10-08
- Comitter:
- Heidl
- Date:
- Thu Oct 08 19:25:13 2015 +0000
- Parent:
- 0:d1960beb98fe
- Commit message:
- Werte auslesen und in Winkel umrechnen
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Wed Sep 30 16:08:36 2015 +0000 +++ b/main.cpp Thu Oct 08 19:25:13 2015 +0000 @@ -17,7 +17,8 @@ double sinX; int16_t angleX; int16_t gyroXRate; -int16_t gyroXAngle; +int16_t gyroXAngleTemp; +float gyroXAngle; main() { @@ -25,8 +26,9 @@ mpu6050Address = setAddress(MPU6050_DEFAULT_ADDRESS); MPU6050 mpu6050; mpu6050.initialize(); //für Ausgabe in Terminal "//" von debug-Befehlen entfernen + mpu6050.debugSerial.printf("DeviceID: %d", mpu6050.getDeviceID()); //mpu6050.setDLPFMode(MPU6050_DLPF_BW_98); - //mpu6050.setFullScaleGyroRange(MPU6050_GYRO_FS_2000); + mpu6050.setFullScaleGyroRange(MPU6050_GYRO_FS_2000); accelX = mpu6050.getAccelerationX(); //mpu6050.debugSerial.printf("Beschleunigung in x-Richtung: %d\n\r", accelX); sinX = (double)accelX/16384; @@ -34,20 +36,21 @@ //mpu6050.debugSerial.printf("Neigung: %f\n\r", angleX*57.296); Timer stw; stw.start(); -// Timer gyro; gyro.start(); + Timer gyro; gyro.start(); while(1) { CommandHandler(); - /* if (gyro.read_us()>125) + if (gyro.read_us()>125) { gyro.reset(); gyroXRate = mpu6050.getRotationX(); gyroXRate = gyroXRate*0.125+3; - gyroXRate = gyroXRate*0.000125; - gyroXAngle = gyroXAngle + gyroXRate; + gyroXRate = (float)gyroXRate; + gyroXAngleTemp = (float)gyroXRate*0.000125*100; + gyroXAngle = gyroXAngle + gyroXAngleTemp; } -*/ accelX = mpu6050.getAccelerationX(); + accelX = mpu6050.getAccelerationX(); if( (stw.read_ms()>10) ) // 100Hz { // dieser Teil wird mit 100Hz aufgerufen stw.reset(); @@ -57,7 +60,7 @@ // nur wenn vom PC aus das Senden eingeschaltet wurde // wird auch etwas gesendet ua0.WriteSvI16(1, angleX-1); -// ua0.WriteSvI16(2, gyroXAngle); + ua0.WriteSvI16(2, gyroXAngle); } } }