firmware: avoid Arduino degrees macro collision

This commit is contained in:
2026-07-17 01:56:46 -06:00
parent 4f5146eb82
commit 1ada42b9fe
2 changed files with 9 additions and 6 deletions
+4 -5
View File
@@ -8,16 +8,16 @@ namespace {
Adafruit_BNO08x bno086(-1);
sh2_SensorValue_t value;
bool initialized = false;
float degrees(float r) { return r * 180.0f / PI; }
float radiansToDegrees(float r) { return r * 180.0f / PI; }
void updateEuler(ImuState& s) {
float sinr = 2 * (s.real * s.i + s.j * s.k);
float cosr = 1 - 2 * (s.i * s.i + s.j * s.j);
s.rollDegrees = degrees(atan2f(sinr, cosr));
s.rollDegrees = radiansToDegrees(atan2f(sinr, cosr));
float sinp = 2 * (s.real * s.j - s.k * s.i);
s.pitchDegrees = degrees(fabsf(sinp) >= 1 ? copysignf(PI / 2, sinp) : asinf(sinp));
s.pitchDegrees = radiansToDegrees(fabsf(sinp) >= 1 ? copysignf(PI / 2, sinp) : asinf(sinp));
float siny = 2 * (s.real * s.k + s.i * s.j);
float cosy = 1 - 2 * (s.j * s.j + s.k * s.k);
s.yawDegrees = degrees(atan2f(siny, cosy));
s.yawDegrees = radiansToDegrees(atan2f(siny, cosy));
}
}
@@ -36,4 +36,3 @@ void updateImu(ImuState& s) {
s.accuracy = value.status; s.valid = true; s.lastUpdateMs = millis();
updateEuler(s);
}