Fix flip-flop behavior.
This commit is contained in:
@ -330,10 +330,11 @@ void loop() {
|
|||||||
bool logic_or = gate1 || gate2;
|
bool logic_or = gate1 || gate2;
|
||||||
bool logic_xor = gate1 ^ gate2;
|
bool logic_xor = gate1 ^ gate2;
|
||||||
|
|
||||||
if (gate1 && !prev_gate1)
|
static bool prev_logic_xor = false;
|
||||||
ff_state = true;
|
if (logic_xor && !prev_logic_xor) {
|
||||||
if (gate2 && !prev_gate2)
|
ff_state = !ff_state;
|
||||||
ff_state = false;
|
}
|
||||||
|
prev_logic_xor = logic_xor;
|
||||||
|
|
||||||
gravity.outputs[0].Update(gate1 ? HIGH : LOW);
|
gravity.outputs[0].Update(gate1 ? HIGH : LOW);
|
||||||
gravity.outputs[1].Update(gate2 ? HIGH : LOW);
|
gravity.outputs[1].Update(gate2 ? HIGH : LOW);
|
||||||
|
|||||||
Reference in New Issue
Block a user