diff --git a/libraries/ProcMeas/ProcMeas.cpp b/libraries/ProcMeas/ProcMeas.cpp index bd0fd7eb52df24fbe85ef41645ea6b0224c1560a..f856c33c85ad645d0d2cf3386ca2d123a1a03a2e 100644 --- a/libraries/ProcMeas/ProcMeas.cpp +++ b/libraries/ProcMeas/ProcMeas.cpp @@ -9,6 +9,8 @@ #include "ProcMeas.h" +#include "arduinoDefs.h" + // --------------------------------------------------------------------------- // Konstruktoren und Initialisierungen // --------------------------------------------------------------------------- @@ -58,8 +60,8 @@ void ProcMeas::run() #ifdef ProcMeasDebug statistics.pmCalcCnt++; #endif - posture.pitch = euler.getPitchFromGravity(gravAngles.x, gravAngles.y, gravAngles.z) * RAD_TO_DEG; - posture.roll = euler.getRollFromGravity(gravAngles.y, gravAngles.z) * RAD_TO_DEG; + posture.pitch = euler.getPitchFromGravity(gravAngles.x, gravAngles.y, gravAngles.z) * smnRAD_TO_DEG; + posture.roll = euler.getRollFromGravity(gravAngles.y, gravAngles.z) * smnRAD_TO_DEG; posture.yaw = 0.0; pMeas->sync(1, 1); gravAnglesAvail = true; diff --git a/libraries/ProcMeas/ProcMeas.h b/libraries/ProcMeas/ProcMeas.h index 7dd48d389a7708bdecc34a50c04e1e4c73801de0..e0b14eb39e112aee919620b74143b2df9adad6f8 100644 --- a/libraries/ProcMeas/ProcMeas.h +++ b/libraries/ProcMeas/ProcMeas.h @@ -17,7 +17,6 @@ #include "EulerAngles.h" //#define ProcMeasDebug -#define RAD_TO_DEG 57.2957795 typedef enum _PmState { diff --git a/libraries/environment/arduinoDefs.h b/libraries/environment/arduinoDefs.h index 4830c5d860683336800903c177b10c53fcb73736..f83058705edbd6d7908044880214c022f3de84f0 100644 --- a/libraries/environment/arduinoDefs.h +++ b/libraries/environment/arduinoDefs.h @@ -13,6 +13,46 @@ #ifndef _arduinoDefs_h #define _arduinoDefs_h +// --------------------------------------------------------------------------- +// Constant Values +// --------------------------------------------------------------------------- +// +#ifndef PI +#define PI 3.1415926535897932384626433832795 +#endif +#ifndef HALF_PI +#define HALF_PI 1.5707963267948966192313216916398 +#endif +#ifndef TWO_PI +#define TWO_PI 6.283185307179586476925286766559 +#endif +#ifndef DEG_TO_RAD +#define DEG_TO_RAD 0.017453292519943295769236907684886 +#endif +#ifndef RAD_TO_DEG +#define RAD_TO_DEG 57.295779513082320876798154814105 +#endif +#ifndef EULER +#define EULER 2.718281828459045235360287471352 +#endif +// +// Es tritt hier das Problem auf, dass obige Werte beim Nano BLE 33 im <core/api> in der Datei common.h +// definiert werden, diese aber bei Eclipse nicht im Indexer von C++ sauber sind oder es zu Problemen bei +// der Abfolge der Definitionen im Build-Vorgang kommt. +// Der Wert RAD_TO_DEG wird im Syntax-Check (lokaler C++ Compiler) nicht erkannt, das Kompilieren über den +// GCC des Arduino-Board hingegen ist fehlerfrei. Möglicherweise werden dort irgendwelche Default-Includes +// vorgenommen, die sich beim Indexer in Eclipse nicht zeigen. +// Es wurde deshalb hier eine extra Definition der Konstanten mit neuem Bezeichner eingeführt, die das +// beschriebene Problem nicht aufwirft. +// +#define smnPI 3.1415926535897932384626433832795 +#define smnHALF_PI 1.5707963267948966192313216916398 +#define smnTWO_PI 6.283185307179586476925286766559 +#define smnDEG_TO_RAD 0.017453292519943295769236907684886 +#define smnRAD_TO_DEG 57.295779513082320876798154814105 +#define smnEULER 2.718281828459045235360287471352 + + // --------------------------------------------------------------------------- // Simple type definitions and settings // ---------------------------------------------------------------------------