From d115f4e8488bcc144c58bc624b47107927f34e87 Mon Sep 17 00:00:00 2001 From: sigil-03 Date: Mon, 17 Nov 2025 18:44:59 -0700 Subject: [PATCH] update GPIOs to use on-chip pulldowns for volume and brightness --- ch32v-insert-coin/src/debounced_gpio.rs | 9 +++++-- ch32v-insert-coin/src/main.rs | 32 ++++++++++++++++++------- 2 files changed, 31 insertions(+), 10 deletions(-) diff --git a/ch32v-insert-coin/src/debounced_gpio.rs b/ch32v-insert-coin/src/debounced_gpio.rs index 784c3fd..b4e2e14 100644 --- a/ch32v-insert-coin/src/debounced_gpio.rs +++ b/ch32v-insert-coin/src/debounced_gpio.rs @@ -14,10 +14,15 @@ pub struct DebouncedGPIO<'a> { } impl<'a> DebouncedGPIO<'a> { - pub fn new(pin: AnyPin, system_tick_rate_hz: usize, debounce_time_ms: usize) -> Self { + pub fn new( + pin: AnyPin, + pull: Pull, + system_tick_rate_hz: usize, + debounce_time_ms: usize, + ) -> Self { // coin debounce timer (100ms) Self { - input: Input::new(pin, Pull::None), + input: Input::new(pin, pull), value: false, ready: false, active: false, diff --git a/ch32v-insert-coin/src/main.rs b/ch32v-insert-coin/src/main.rs index 694ce75..7e76b42 100644 --- a/ch32v-insert-coin/src/main.rs +++ b/ch32v-insert-coin/src/main.rs @@ -343,17 +343,33 @@ fn app_main(mut p: hal::Peripherals, app_settings: Settings) -> Settings { unsafe { system::init_gpio_irq(main_btn_pin.pin(), main_btn_pin.port(), true, true) }; // coin debouncer (100ms) - let mut sense_coin_input = - DebouncedGPIO::new(sense_coin_pin.degrade(), core_config.tick_rate_hz, 20); + let mut sense_coin_input = DebouncedGPIO::new( + sense_coin_pin.degrade(), + Pull::None, + core_config.tick_rate_hz, + 20, + ); // main button debouncer (100ms) - let mut main_btn_input = - DebouncedGPIO::new(main_btn_pin.degrade(), core_config.tick_rate_hz, 20); + let mut main_btn_input = DebouncedGPIO::new( + main_btn_pin.degrade(), + Pull::None, + core_config.tick_rate_hz, + 20, + ); // button debouncer (100ms) - let mut volume_btn_input = - DebouncedGPIO::new(volume_btn_pin.degrade(), core_config.tick_rate_hz, 100); + let mut volume_btn_input = DebouncedGPIO::new( + volume_btn_pin.degrade(), + Pull::Down, + core_config.tick_rate_hz, + 100, + ); // button debouncer (100ms) - let mut light_ctrl_btn_input = - DebouncedGPIO::new(light_ctrl_btn_pin.degrade(), core_config.tick_rate_hz, 100); + let mut light_ctrl_btn_input = DebouncedGPIO::new( + light_ctrl_btn_pin.degrade(), + Pull::Down, + core_config.tick_rate_hz, + 100, + ); let timer_config = TimerConfig { sp_timer_ms: 1000,