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.
Dependencies: AHRS_fillter mbed
Fork of MPU9250AHRS by
Diff: main.cpp
- Revision:
- 4:1e5db958fd1b
- Parent:
- 3:3e04c1c03cab
- Child:
- 5:d31487b34216
--- a/main.cpp Fri Dec 18 12:59:56 2015 +0000
+++ b/main.cpp Fri Dec 18 20:49:39 2015 +0000
@@ -186,10 +186,12 @@
if(magCount[2]<zmin)
zmin = magCount[2];
+ if(magCount[2]>zmax)
+ zmax = magCount[2];
+ /*
if(mz>zmax)
zmax = mz;
-
-
+ */
wait_ms(10);
}
@@ -204,6 +206,14 @@
magbias[1] = ((ymax-ymin)/2.0f - ymax); // User environmental x-axis correction in milliGauss
magbias[2] = ((zmax-zmin)/2.0f - zmax); // User environmental x-axis correction in milliGauss
+ magbias[0] = -1.0;
+ magbias[1] = -1.0;
+ magbias[2] = -1.0;
+
+ magCalibration[0] = 2.0f / (xmax -xmin);
+ magCalibration[1] = 2.0f / (ymax -ymin);
+ magCalibration[2] = 2.0f / (zmax -zmin);
+
//magbias[0] = (xmin-xmax)/2.0f; // User environmental x-axis correction in milliGauss, should be automatically calculated
//magbias[1] = (ymin-ymax)/2.0f; // User environmental x-axis correction in milliGauss
//magbias[2] = (zmin-zmax)/2.0f; // User environmental x-axis correction in milliGauss
@@ -251,9 +261,13 @@
*/
// pc.printf("FINISH scan\r\n\r\n");
- mx = (float)magCount[0]*mRes*magCalibration[0] + magbias[0]; // get actual magnetometer value, this depends on scale being set
- my = (float)magCount[1]*mRes*magCalibration[1] + magbias[1];
- mz = (float)magCount[2]*mRes*magCalibration[2] + magbias[2];
+// mx = (float)magCount[0]*mRes*magCalibration[0] + magbias[0]; // get actual magnetometer value, this depends on scale being set
+// my = (float)magCount[1]*mRes*magCalibration[1] + magbias[1];
+// mz = (float)magCount[2]*mRes*magCalibration[2] + magbias[2];
+
+ mx = ((float)magCount[0]-xmin)*magCalibration[0] + magbias[0]; // get actual magnetometer value, this depends on scale being set
+ my = ((float)magCount[1]-ymin)*magCalibration[1] + magbias[1];
+ mz = ((float)magCount[2]-zmin)*magCalibration[2] + magbias[2];
// mx = (float)magCount[0]*1.499389499f - magbias[0]; // get actual magnetometer value, this depends on scale being set
// my = (float)magCount[1]*1.499389499f - magbias[1];
