add battery level checking
This commit is contained in:
parent
f3ac43614c
commit
5934336984
1 changed files with 24 additions and 5 deletions
|
|
@ -249,6 +249,15 @@ use insert_coin::TickTimerService;
|
|||
use insert_coin::{TickService, TickServiceData};
|
||||
|
||||
fn app_main(mut p: hal::Peripherals) {
|
||||
// initialize ADC core first, and exit if battery is too low
|
||||
let mut adc = hal::adc::Adc::new(p.ADC1, Default::default());
|
||||
let mut batt_monitor_pin = p.PD4;
|
||||
let mut adc_core = AdcCore::new(adc, batt_monitor_pin);
|
||||
let bv = adc_core.get_battery_voltage();
|
||||
if bv < 421 {
|
||||
adc_core.shutdown();
|
||||
return;
|
||||
}
|
||||
// === output setup ===
|
||||
|
||||
// LED0 output setup
|
||||
|
|
@ -292,9 +301,9 @@ fn app_main(mut p: hal::Peripherals) {
|
|||
// === input setup ===
|
||||
|
||||
// adc
|
||||
let mut adc = hal::adc::Adc::new(p.ADC1, Default::default());
|
||||
let mut batt_monitor_pin = p.PD4;
|
||||
let adc_core = AdcCore::new(adc, batt_monitor_pin);
|
||||
// let mut adc = hal::adc::Adc::new(p.ADC1, Default::default());
|
||||
// let mut batt_monitor_pin = p.PD4;
|
||||
// let adc_core = AdcCore::new(adc, batt_monitor_pin);
|
||||
|
||||
// adc2
|
||||
// let mut usb_detect_dc = hal::adc::Adc::new(p.ADC1, Default::default());
|
||||
|
|
@ -555,8 +564,18 @@ fn shutdown_main(p: hal::Peripherals) {
|
|||
|
||||
riscv::asm::delay(1_000_000);
|
||||
|
||||
unsafe { system::enter_standby() };
|
||||
riscv::asm::wfi();
|
||||
loop {
|
||||
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())
|
||||
// && app.should_wake()
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// loop {
|
||||
// unsafe {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue