From d7eb416aa9ef294155cb6a86e64a96a935f2ec66 Mon Sep 17 00:00:00 2001 From: Dominic Clifton Date: Thu, 17 Apr 2014 19:37:56 +0100 Subject: [PATCH] de-duplicate degrees to radians code. Note, this also makes the operator precedence clearer. --- src/boardalignment.c | 7 +++---- src/maths.c | 7 +++++++ src/maths.h | 3 +++ src/mw.c | 2 +- src/{rx.h => rx_common.h} | 0 5 files changed, 14 insertions(+), 5 deletions(-) rename src/{rx.h => rx_common.h} (100%) diff --git a/src/boardalignment.c b/src/boardalignment.c index ecd3f4a480..32ccef84b5 100644 --- a/src/boardalignment.c +++ b/src/boardalignment.c @@ -29,10 +29,9 @@ void initBoardAlignment(boardAlignment_t *boardAlignment) standardBoardAlignment = false; - // deg2rad - roll = boardAlignment->rollDegrees * M_PI / 180.0f; - pitch = boardAlignment->pitchDegrees * M_PI / 180.0f; - yaw = boardAlignment->yawDegrees * M_PI / 180.0f; + roll = degreesToRadians(boardAlignment->rollDegrees); + pitch = degreesToRadians(boardAlignment->pitchDegrees); + yaw = degreesToRadians(boardAlignment->yawDegrees); cosx = cosf(roll); sinx = sinf(roll); diff --git a/src/maths.c b/src/maths.c index b2aa1e251a..f04d2bbf0d 100644 --- a/src/maths.c +++ b/src/maths.c @@ -1,3 +1,4 @@ +#include #include #include "maths.h" @@ -40,3 +41,9 @@ float devStandardDeviation(stdev_t *dev) { return sqrtf(devVariance(dev)); } + +float degreesToRadians(int16_t degrees) +{ + return degrees * RAD; +} + diff --git a/src/maths.h b/src/maths.h index 9e3acd92fa..4497bdec98 100644 --- a/src/maths.h +++ b/src/maths.h @@ -12,6 +12,8 @@ #define RADX10 (M_PI / 1800.0f) // 0.001745329252f #define RAD (M_PI / 180.0f) +#define DEG2RAD(degrees) (degrees * RAD) + #define min(a, b) ((a) < (b) ? (a) : (b)) #define max(a, b) ((a) > (b) ? (a) : (b)) #define abs(x) ((x) > 0 ? (x) : -(x)) @@ -28,3 +30,4 @@ void devClear(stdev_t *dev); void devPush(stdev_t *dev, float x); float devVariance(stdev_t *dev); float devStandardDeviation(stdev_t *dev); +float degreesToRadians(int16_t degrees); diff --git a/src/mw.c b/src/mw.c index fb6d4ec063..43b2befbf2 100755 --- a/src/mw.c +++ b/src/mw.c @@ -142,7 +142,7 @@ void annexCode(void) rcCommand[THROTTLE] = lookupThrottleRC[tmp2] + (tmp - tmp2 * 100) * (lookupThrottleRC[tmp2 + 1] - lookupThrottleRC[tmp2]) / 100; // [0;1000] -> expo -> [MINTHROTTLE;MAXTHROTTLE] if (f.HEADFREE_MODE) { - float radDiff = (heading - headFreeModeHold) * M_PI / 180.0f; + float radDiff = degreesToRadians(heading - headFreeModeHold); float cosDiff = cosf(radDiff); float sinDiff = sinf(radDiff); int16_t rcCommand_PITCH = rcCommand[PITCH] * cosDiff + rcCommand[ROLL] * sinDiff; diff --git a/src/rx.h b/src/rx_common.h similarity index 100% rename from src/rx.h rename to src/rx_common.h