cursed input flags stuff

This commit is contained in:
sigil-03 2025-10-26 15:44:35 -06:00
parent b1d7574a80
commit 485f617515
2 changed files with 56 additions and 27 deletions

View file

@ -144,6 +144,21 @@ impl Default for InputFlags {
}
}
impl InputFlags {
pub fn set_sense_coin_flag(&mut self, val: bool) {
self.sense_coin_flag = val;
}
pub fn set_main_btn_flag(&mut self, val: bool) {
self.main_btn_flag = val;
}
pub fn set_volume_btn_flag(&mut self, val: bool) {
self.volume_btn_flag = val;
}
pub fn set_light_ctrl_btn_flag(&mut self, val: bool) {
self.light_ctrl_btn_flag = val;
}
}
static mut INPUT_FLAGS: InputFlags = InputFlags {
sense_coin_flag: false,
main_btn_flag: false,
@ -157,7 +172,9 @@ impl Handler<hal::interrupt::typelevel::EXTI7_0> for Test {
#[cfg(feature = "enable_print")]
println!("on_interrupt()");
critical_section::with(|_| unsafe {
INPUT_FLAGS = system::clear_interrupt(2, 6);
let flags = system::clear_interrupt(2, 6);
INPUT_FLAGS.sense_coin_flag = flags.sense_coin_flag;
INPUT_FLAGS.main_btn_flag = flags.main_btn_flag;
});
}
}
@ -249,11 +266,11 @@ fn app_main(mut p: hal::Peripherals, mut delay: Delay) -> ! {
// adc
let mut adc = hal::adc::Adc::new(p.ADC1, Default::default());
let mut adc_pin = p.PD4;
let mut batt_monitor_pin = p.PD4;
// adc2
// let mut usb_detect_dc = hal::adc::Adc::new(p.ADC1, Default::default());
let mut usb_adc_pin = p.PD5;
let mut usb_detect_pin = p.PD5;
// println!("ADC_PIN CHANNEL: {}", adc_pin.channel().channel());
delay.delay_ms(1000);
@ -268,20 +285,8 @@ fn app_main(mut p: hal::Peripherals, mut delay: Delay) -> ! {
let volume_btn_pin = p.PC6;
let light_ctrl_btn_pin = p.PC7;
let amp_en = p.PC5;
// println!(
// "coin pin: {} | coin port: {}",
// coin_pin.pin(),
// coin_pin.port()
// );
// println!(
// "push pin: {} | push port: {}",
// button_pin.pin(),
// button_pin.port()
// );
//2025-09-10 00:32:23.514: coin pin: 4 | coin port: 3
// 2025-09-10 00:32:23.515: push pin: 6 | push port: 3
let extra_io_1 = p.PD0;
let extra_io_2 = p.PD3;
// set up interrupts
unsafe { system::init_gpio_irq(sense_coin_pin.pin(), sense_coin_pin.port(), false, true) };
@ -473,8 +478,8 @@ fn app_main(mut p: hal::Peripherals, mut delay: Delay) -> ! {
}
if adc1_timer.need_service() {
let val = adc.convert(&mut adc_pin, hal::adc::SampleTime::CYCLES241);
let val = adc.convert(&mut usb_adc_pin, hal::adc::SampleTime::CYCLES241);
let val = adc.convert(&mut batt_monitor_pin, hal::adc::SampleTime::CYCLES241);
let val = adc.convert(&mut usb_detect_pin, hal::adc::SampleTime::CYCLES241);
#[cfg(feature = "enable_print")]
println!("ADC value: {}", val);