From 7209e1a6e53267f42c4578f08d108ed51109aa34 Mon Sep 17 00:00:00 2001 From: Adam Wonak Date: Mon, 21 Jul 2025 16:58:30 -0700 Subject: [PATCH] Previous implementation was half-timing the pulse out. This implements a proper duty cycle check. --- firmware/Gravity/Gravity.ino | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/firmware/Gravity/Gravity.ino b/firmware/Gravity/Gravity.ino index 98becf2..92761c6 100644 --- a/firmware/Gravity/Gravity.ino +++ b/firmware/Gravity/Gravity.ino @@ -137,8 +137,11 @@ void HandleIntClockTick(uint32_t tick) { const uint16_t pulse_high_ticks = pgm_read_word_near(&CLOCK_MOD_PULSES[clock_index]); const uint32_t pulse_low_ticks = tick + max((pulse_high_ticks / 2), 1L); - if (pulse_low_ticks % pulse_high_ticks == 0) { - gravity.pulse.Update(!gravity.pulse.On()); + + if (tick % pulse_high_ticks == 0) { + gravity.pulse.High(); + } else if (pulse_low_ticks % pulse_high_ticks == 0) { + gravity.pulse.Low(); } }