aboutsummaryrefslogtreecommitdiffstats
path: root/klippy/extras/buttons.py
diff options
context:
space:
mode:
Diffstat (limited to 'klippy/extras/buttons.py')
-rw-r--r--klippy/extras/buttons.py7
1 files changed, 3 insertions, 4 deletions
diff --git a/klippy/extras/buttons.py b/klippy/extras/buttons.py
index 1a6147d1..47274257 100644
--- a/klippy/extras/buttons.py
+++ b/klippy/extras/buttons.py
@@ -57,10 +57,9 @@ class MCU_buttons:
def handle_buttons_state(self, params):
# Expand the message ack_count from 8-bit
ack_count = self.ack_count
- ack_diff = (ack_count - params['ack_count']) & 0xff
- if ack_diff & 0x80:
- ack_diff -= 0x100
- msg_ack_count = ack_count - ack_diff
+ ack_diff = (params['ack_count'] - ack_count) & 0xff
+ ack_diff -= (ack_diff & 0x80) << 1
+ msg_ack_count = ack_count + ack_diff
# Determine new buttons
buttons = bytearray(params['state'])
new_count = msg_ack_count + len(buttons) - self.ack_count