Compare commits
No commits in common. "d8477e3d2d6b74ce14b8a260b5ad6d4a06734fa8" and "4c80907c0f417562648e2371608f4abdaad51794" have entirely different histories.
d8477e3d2d
...
4c80907c0f
1 changed files with 41 additions and 16 deletions
|
|
@ -239,13 +239,6 @@ fn systick_init(tick_freq_hz: usize) {
|
||||||
w.set_stclk(ch32_hal::pac::systick::vals::Stclk::HCLK_DIV8); // HCLK/8 clock source
|
w.set_stclk(ch32_hal::pac::systick::vals::Stclk::HCLK_DIV8); // HCLK/8 clock source
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
fn systick_stop() {
|
|
||||||
let r = &ch32_hal::pac::SYSTICK;
|
|
||||||
// Reset SysTick
|
|
||||||
r.ctlr().write(|w| {
|
|
||||||
// Start with everything disabled
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
bind_interrupts!(struct Irqs {
|
bind_interrupts!(struct Irqs {
|
||||||
EXTI7_0 => Test;
|
EXTI7_0 => Test;
|
||||||
|
|
@ -261,15 +254,8 @@ fn app_main(mut p: hal::Peripherals, app_settings: Settings) -> Settings {
|
||||||
let mut adc = hal::adc::Adc::new(p.ADC1, Default::default());
|
let mut adc = hal::adc::Adc::new(p.ADC1, Default::default());
|
||||||
let mut batt_monitor_pin = p.PD4;
|
let mut batt_monitor_pin = p.PD4;
|
||||||
let mut adc_core = AdcCore::new(adc, batt_monitor_pin);
|
let mut adc_core = AdcCore::new(adc, batt_monitor_pin);
|
||||||
|
|
||||||
let mut usb_detect_pin = p.PD5;
|
|
||||||
let usb_detect_input = Input::new(usb_detect_pin, Pull::Up);
|
|
||||||
let usb = Usb::new(usb_detect_input);
|
|
||||||
|
|
||||||
let bv = adc_core.get_battery_voltage();
|
let bv = adc_core.get_battery_voltage();
|
||||||
|
if bv < 421 {
|
||||||
// if we don't have USB power, and the batt ADC reads under 421, don't wake
|
|
||||||
if !usb.powered() && bv < 421 {
|
|
||||||
adc_core.shutdown();
|
adc_core.shutdown();
|
||||||
return app_settings;
|
return app_settings;
|
||||||
}
|
}
|
||||||
|
|
@ -320,6 +306,9 @@ fn app_main(mut p: hal::Peripherals, app_settings: Settings) -> Settings {
|
||||||
|
|
||||||
// adc2
|
// adc2
|
||||||
// let mut usb_detect_dc = hal::adc::Adc::new(p.ADC1, Default::default());
|
// let mut usb_detect_dc = hal::adc::Adc::new(p.ADC1, Default::default());
|
||||||
|
let mut usb_detect_pin = p.PD5;
|
||||||
|
let usb_detect_input = Input::new(usb_detect_pin, Pull::Up);
|
||||||
|
let usb = Usb::new(usb_detect_input);
|
||||||
|
|
||||||
// println!("ADC_PIN CHANNEL: {}", adc_pin.channel().channel());
|
// println!("ADC_PIN CHANNEL: {}", adc_pin.channel().channel());
|
||||||
|
|
||||||
|
|
@ -572,7 +561,6 @@ use ch32_hal::timer::Channel;
|
||||||
|
|
||||||
// fn shutdown_main(p: Peripherals) {
|
// fn shutdown_main(p: Peripherals) {
|
||||||
fn shutdown_main(p: hal::Peripherals) {
|
fn shutdown_main(p: hal::Peripherals) {
|
||||||
systick_stop();
|
|
||||||
// LED0 output setup
|
// LED0 output setup
|
||||||
let led0_pin = OutputOpenDrain::new(p.PC3, Level::Low, Default::default());
|
let led0_pin = OutputOpenDrain::new(p.PC3, Level::Low, Default::default());
|
||||||
let led1_pin = OutputOpenDrain::new(p.PD2, Level::High, Default::default());
|
let led1_pin = OutputOpenDrain::new(p.PD2, Level::High, Default::default());
|
||||||
|
|
@ -607,6 +595,43 @@ fn shutdown_main(p: hal::Peripherals) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// loop {
|
||||||
|
// unsafe {
|
||||||
|
// #[allow(static_mut_refs)]
|
||||||
|
// INPUT_FLAGS.sense_coin_flag.clear();
|
||||||
|
// #[allow(static_mut_refs)]
|
||||||
|
// INPUT_FLAGS.main_btn_flag.clear();
|
||||||
|
// }
|
||||||
|
// unsafe { system::enter_standby() };
|
||||||
|
// riscv::asm::wfi();
|
||||||
|
// unsafe {
|
||||||
|
// #[allow(static_mut_refs)]
|
||||||
|
// if (INPUT_FLAGS.sense_coin_flag.active()
|
||||||
|
// || (INPUT_FLAGS.main_btn_flag.active() && main_btn_input.is_high_immediate()))
|
||||||
|
// && app.should_wake()
|
||||||
|
// {
|
||||||
|
// break;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// let mut config = hal::Config::default();
|
||||||
|
// config.rcc = hal::rcc::Config::SYSCLK_FREQ_48MHZ_HSI;
|
||||||
|
// unsafe {
|
||||||
|
// hal::rcc::init(config.rcc);
|
||||||
|
// }
|
||||||
|
// unsafe {
|
||||||
|
// use hal::pac::Interrupt;
|
||||||
|
// use qingke::interrupt::Priority;
|
||||||
|
// use qingke_rt::CoreInterrupt;
|
||||||
|
|
||||||
|
// system::clear_interrupt(2, 6);
|
||||||
|
|
||||||
|
// qingke::pfic::set_priority(CoreInterrupt::SysTick as u8, Priority::P15 as u8);
|
||||||
|
|
||||||
|
// qingke::pfic::enable_interrupt(Interrupt::EXTI7_0 as u8);
|
||||||
|
// qingke::pfic::enable_interrupt(CoreInterrupt::SysTick as u8);
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
#[qingke_rt::entry]
|
#[qingke_rt::entry]
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue