From b5b3de1cb1d81093fa1f9cf8fb9c4368feb4d624 Mon Sep 17 00:00:00 2001 From: kedeng Date: Fri, 11 Jul 2025 12:38:39 +0800 Subject: [PATCH] Improve dshot_edt_always_decode condition checking logic --- src/main/drivers/dshot.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/drivers/dshot.c b/src/main/drivers/dshot.c index 2d141edf43..c3647098c7 100644 --- a/src/main/drivers/dshot.c +++ b/src/main/drivers/dshot.c @@ -181,7 +181,7 @@ void initDshotTelemetry(const timeUs_t looptimeUs) // erpmToHz is used by bidir dshot and ESC telemetry erpmToHz = ERPM_PER_LSB / SECONDS_PER_MINUTE / (motorConfig()->motorPoleCount / 2.0f); - edtAlwaysDecode = motorConfig()->dev.useDshotEdtAlwaysDecode == DSHOT_EDT_ALWAYS_DECODE_ON; + edtAlwaysDecode = motorConfig()->dev.useDshotEdtAlwaysDecode; #ifdef USE_RPM_FILTER if (motorConfig()->dev.useDshotTelemetry) { @@ -216,7 +216,7 @@ static void dshot_decode_telemetry_value(uint8_t motorIndex, uint32_t *pDecoded, { uint16_t value = dshotTelemetryState.motorState[motorIndex].rawValue; bool isEdtEnabled = (dshotTelemetryState.motorState[motorIndex].telemetryTypes & DSHOT_EXTENDED_TELEMETRY_MASK) != 0; - isEdtEnabled |= edtAlwaysDecode; + isEdtEnabled = isEdtEnabled || (edtAlwaysDecode == DSHOT_EDT_ALWAYS_DECODE_ON); // https://github.com/bird-sanctuary/extended-dshot-telemetry // Extract telemetry type field and check for eRPM conditions in one operation