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};
|
use insert_coin::{TickService, TickServiceData};
|
||||||
|
|
||||||
fn app_main(mut p: hal::Peripherals) {
|
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 ===
|
// === output setup ===
|
||||||
|
|
||||||
// LED0 output setup
|
// LED0 output setup
|
||||||
|
|
@ -292,9 +301,9 @@ fn app_main(mut p: hal::Peripherals) {
|
||||||
// === input setup ===
|
// === input setup ===
|
||||||
|
|
||||||
// adc
|
// adc
|
||||||
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 adc_core = AdcCore::new(adc, batt_monitor_pin);
|
// let adc_core = AdcCore::new(adc, batt_monitor_pin);
|
||||||
|
|
||||||
// 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());
|
||||||
|
|
@ -555,8 +564,18 @@ fn shutdown_main(p: hal::Peripherals) {
|
||||||
|
|
||||||
riscv::asm::delay(1_000_000);
|
riscv::asm::delay(1_000_000);
|
||||||
|
|
||||||
unsafe { system::enter_standby() };
|
loop {
|
||||||
riscv::asm::wfi();
|
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 {
|
// loop {
|
||||||
// unsafe {
|
// unsafe {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue