From 84254ac7203271c86ca502e3cbcd750ae98ad665 Mon Sep 17 00:00:00 2001 From: adrianmiriuta Date: Wed, 11 Apr 2018 12:16:40 +0200 Subject: [PATCH 1/4] Fix Acc MSP BBL --- src/main/blackbox/blackbox.c | 4 ++-- src/main/interface/msp.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/blackbox/blackbox.c b/src/main/blackbox/blackbox.c index c3d51c8aead..bb4658dea90 100644 --- a/src/main/blackbox/blackbox.c +++ b/src/main/blackbox/blackbox.c @@ -994,9 +994,9 @@ static void loadMainState(timeUs_t currentTimeUs) blackboxCurrent->axisPID_I[i] = axisPID_I[i]; blackboxCurrent->axisPID_D[i] = axisPID_D[i]; blackboxCurrent->gyroADC[i] = lrintf(gyro.gyroADCf[i]); - blackboxCurrent->accADC[i] = acc.accADC[i]; + blackboxCurrent->accADC[i] = lrintf(acc.accADC[i]); #ifdef USE_MAG - blackboxCurrent->magADC[i] = mag.magADC[i]; + blackboxCurrent->magADC[i] = lrintf(mag.magADC[i]); #endif } diff --git a/src/main/interface/msp.c b/src/main/interface/msp.c index a240be4a3f3..a1aa3abffc3 100644 --- a/src/main/interface/msp.c +++ b/src/main/interface/msp.c @@ -781,13 +781,13 @@ static bool mspProcessOutCommand(uint8_t cmdMSP, sbuf_t *dst) } for (int i = 0; i < 3; i++) { - sbufWriteU16(dst, acc.accADC[i] / scale); + sbufWriteU16(dst, lrintf(acc.accADC[i] / scale)); } for (int i = 0; i < 3; i++) { sbufWriteU16(dst, gyroRateDps(i)); } for (int i = 0; i < 3; i++) { - sbufWriteU16(dst, mag.magADC[i]); + sbufWriteU16(dst, lrintf(mag.magADC[i])); } } break; From c1c1a84fb84ddb857fc8c87e8d5b1370f3bd08a7 Mon Sep 17 00:00:00 2001 From: adrianmiriuta Date: Wed, 11 Apr 2018 12:17:52 +0200 Subject: [PATCH 2/4] Fix Acc MSP BBL v1 --- src/main/telemetry/smartport.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/telemetry/smartport.c b/src/main/telemetry/smartport.c index 81ec89b2f1f..3a356acc8d4 100644 --- a/src/main/telemetry/smartport.c +++ b/src/main/telemetry/smartport.c @@ -421,15 +421,15 @@ void processSmartPortTelemetry(smartPortPayload_t *payload, volatile bool *clear *clearToSend = false; break; case FSSP_DATAID_ACCX : - smartPortSendPackage(id, 100 * acc.accADC[X] / acc.dev.acc_1G); // Multiply by 100 to show as x.xx g on Taranis + smartPortSendPackage(id, lrintf(100 * acc.accADC[X] / acc.dev.acc_1G)); // Multiply by 100 to show as x.xx g on Taranis *clearToSend = false; break; case FSSP_DATAID_ACCY : - smartPortSendPackage(id, 100 * acc.accADC[Y] / acc.dev.acc_1G); + smartPortSendPackage(id, lrintf(100 * acc.accADC[Y] / acc.dev.acc_1G)); *clearToSend = false; break; case FSSP_DATAID_ACCZ : - smartPortSendPackage(id, 100 * acc.accADC[Z] / acc.dev.acc_1G); + smartPortSendPackage(id, lrintf(100 * acc.accADC[Z] / acc.dev.acc_1G)); *clearToSend = false; break; case FSSP_DATAID_T1 : From f5ca5a7549b61e220371a8306f3d04ebfc79c0d7 Mon Sep 17 00:00:00 2001 From: adrianmiriuta Date: Wed, 11 Apr 2018 12:18:28 +0200 Subject: [PATCH 3/4] Fix Acc MSP BBL v2 --- src/main/telemetry/frsky_hub.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/telemetry/frsky_hub.c b/src/main/telemetry/frsky_hub.c index c0fd7ae9d2a..94c5ca7049c 100644 --- a/src/main/telemetry/frsky_hub.c +++ b/src/main/telemetry/frsky_hub.c @@ -173,7 +173,7 @@ static void frSkyHubWriteByteInternal(const char data) static void sendAccel(void) { for (unsigned i = 0; i < 3; i++) { - frSkyHubWriteFrame(ID_ACC_X + i, ((float)acc.accADC[i] / acc.dev.acc_1G) * 1000); + frSkyHubWriteFrame(ID_ACC_X + i, ((int16_t)acc.accADC[i] / acc.dev.acc_1G) * 1000); } } From 4e90aac857d8f0f1e472fd6937590eca7e63f0a3 Mon Sep 17 00:00:00 2001 From: adrianmiriuta Date: Wed, 11 Apr 2018 12:19:39 +0200 Subject: [PATCH 4/4] Fix Acc MSP BBL v3 --- src/main/telemetry/ibus_shared.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/telemetry/ibus_shared.c b/src/main/telemetry/ibus_shared.c index afa163c8db1..79fcea2dee9 100644 --- a/src/main/telemetry/ibus_shared.c +++ b/src/main/telemetry/ibus_shared.c @@ -310,7 +310,7 @@ static uint16_t getMode() static int16_t getACC(uint8_t index) { - return (int16_t)(((float)acc.accADC[index] / acc.dev.acc_1G) * 1000); + return (int16_t)((acc.accADC[index] / acc.dev.acc_1G) * 1000); } #if defined(USE_TELEMETRY_IBUS_EXTENDED)