From 3f31780deb3b2deda2ee4a314ad31ef0d9ab3700 Mon Sep 17 00:00:00 2001 From: Adam Wonak Date: Sun, 8 Mar 2026 10:09:01 -0700 Subject: [PATCH] Fix flip-flop behavior. --- firmware/Comparator/Comparator.ino | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/firmware/Comparator/Comparator.ino b/firmware/Comparator/Comparator.ino index 8e647c4..d4a49f9 100644 --- a/firmware/Comparator/Comparator.ino +++ b/firmware/Comparator/Comparator.ino @@ -330,10 +330,11 @@ void loop() { bool logic_or = gate1 || gate2; bool logic_xor = gate1 ^ gate2; - if (gate1 && !prev_gate1) - ff_state = true; - if (gate2 && !prev_gate2) - ff_state = false; + static bool prev_logic_xor = false; + if (logic_xor && !prev_logic_xor) { + ff_state = !ff_state; + } + prev_logic_xor = logic_xor; gravity.outputs[0].Update(gate1 ? HIGH : LOW); gravity.outputs[1].Update(gate2 ? HIGH : LOW);