# HG changeset patch # User Paul Boddie # Date 1418753034 0 # Node ID ecbfb0661aabe6aa44018ecbc6e8b743e8abc4ea # Parent 85b19dbdd48e67406c1f3ab3807b8243f3b52836 Moved magnetometer calibration into a separate function. diff -r 85b19dbdd48e -r ecbfb0661aab measure.c --- a/measure.c Tue Dec 16 18:03:11 2014 +0000 +++ b/measure.c Tue Dec 16 18:03:54 2014 +0000 @@ -32,10 +32,6 @@ void ui_calibrate(bool using_filter, int (*print)(const char *, ...), void (*flush)()) { vectorf tmpB[1]; - FILE *magnetcfg; - char fieldmins[3][8], fieldmaxs[3][8], *endptr; - double value; - int i; print("Calibrating...\n"); flush(); @@ -60,6 +56,20 @@ print("Calibrated using (%.4f, %.4f, %.4f).\n", acceleration0.x, acceleration0.y, acceleration0.z); flush(); + mag_calibrate(); + + print("Calibrated using (%.1f, %.1f, %.1f), (%.1f, %.1f, %.1f).\n", + fieldmin.x, fieldmin.y, fieldmin.z, + fieldmax.x, fieldmax.y, fieldmax.z); +} + +void mag_calibrate() +{ + FILE *magnetcfg; + char fieldmins[3][8], fieldmaxs[3][8], *endptr; + double value; + int i; + /* Read magnetometer settings, if possible. */ magnetcfg = fopen(IMU_MAGNET_SETTINGS_FILE, "r"); @@ -80,10 +90,6 @@ fieldmax.axis[i] = value; } - print("Calibrated using (%.1f, %.1f, %.1f), (%.1f, %.1f, %.1f).\n", - fieldmin.x, fieldmin.y, fieldmin.z, - fieldmax.x, fieldmax.y, fieldmax.z); - fclose(magnetcfg); } } diff -r 85b19dbdd48e -r ecbfb0661aab measure.h --- a/measure.h Tue Dec 16 18:03:11 2014 +0000 +++ b/measure.h Tue Dec 16 18:03:54 2014 +0000 @@ -20,6 +20,7 @@ /* Function definitions. */ void ui_calibrate(bool using_filter, int (*print)(const char *, ...), void (*flush)()); +void mag_calibrate(); void *get_measurements(void *arg); #ifdef __MEASURE_H_PRIVATE__