From 3127e910be4d9f83967eec9a35c7f50a9038b6e8 Mon Sep 17 00:00:00 2001 From: ot0tot <36753790+ot0tot@users.noreply.github.com> Date: Mon, 3 Feb 2025 22:00:03 -0500 Subject: [PATCH] Send 0 value (#3126) --- src/lib/ServoOutput/DShotRMT.cpp | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/src/lib/ServoOutput/DShotRMT.cpp b/src/lib/ServoOutput/DShotRMT.cpp index 55d89e55..c7b7fdcb 100644 --- a/src/lib/ServoOutput/DShotRMT.cpp +++ b/src/lib/ServoOutput/DShotRMT.cpp @@ -102,17 +102,22 @@ bool DShotRMT::begin(dshot_mode_t dshot_mode, bool is_bidirectional) { // ...the config part is done, now the calculating and sending part void DShotRMT::send_dshot_value(uint16_t throttle_value, telemetric_request_t telemetric_request) { dshot_packet_t dshot_rmt_packet = { }; + + if (throttle_value == 0) { + dshot_rmt_packet.throttle_value = 0; + } else { + if (throttle_value < DSHOT_THROTTLE_MIN) { + throttle_value = DSHOT_THROTTLE_MIN; + } - if (throttle_value < DSHOT_THROTTLE_MIN) { - throttle_value = DSHOT_THROTTLE_MIN; - } + if (throttle_value > DSHOT_THROTTLE_MAX) { + throttle_value = DSHOT_THROTTLE_MAX; + } - if (throttle_value > DSHOT_THROTTLE_MAX) { - throttle_value = DSHOT_THROTTLE_MAX; + // ...packets are the same for bidirectional mode + dshot_rmt_packet.throttle_value = throttle_value; } - - // ...packets are the same for bidirectional mode - dshot_rmt_packet.throttle_value = throttle_value; + dshot_rmt_packet.telemetric_request = telemetric_request; dshot_rmt_packet.checksum = this->calc_dshot_chksum(dshot_rmt_packet); -- 2.11.4.GIT