This commit is contained in:
Dimitrios Kouros
2026-08-05 15:03:28 +03:00
parent 68194e336c
commit 069453e154
+9 -8
View File
@@ -17,7 +17,7 @@ use esp_hal::{
delay::Delay, delay::Delay,
gpio::{DriveMode, Flex, OutputConfig, Pull}, gpio::{DriveMode, Flex, OutputConfig, Pull},
interrupt::software::SoftwareInterruptControl, interrupt::software::SoftwareInterruptControl,
rtc_cntl::{Rtc, reset_reason, sleep::TimerWakeupSource, wakeup_cause}, rtc_cntl::{reset_reason, sleep::{LowPower, TimerWakeupSource}, wakeup_cause},
system::Cpu, system::Cpu,
timer::timg::TimerGroup, timer::timg::TimerGroup,
}; };
@@ -131,8 +131,8 @@ async fn main(_spawner: Spawner) -> ! {
.unwrap(); .unwrap();
let delay = Delay::new(); let delay = Delay::new();
let mut rtc = Rtc::new(peripherals.LPWR); //let mut rtc = Rtc::new(peripherals.RTC_TIMER);//LPWR);
let mut lpwr = LowPower::new(peripherals.LPWR);
let reason = reset_reason(Cpu::ProCpu); let reason = reset_reason(Cpu::ProCpu);
let wake_reason = wakeup_cause(); let wake_reason = wakeup_cause();
@@ -157,7 +157,7 @@ async fn main(_spawner: Spawner) -> ! {
} }
Err(error) => { Err(error) => {
esp_println::dbg!("An error occurred while trying to read sensor: {:?}", error); esp_println::dbg!("An error occurred while trying to read sensor: {:?}", error);
deep_sleep(&mut rtc, &delay, 30); deep_sleep(&mut lpwr, &delay, 30);
} }
} }
@@ -180,13 +180,14 @@ async fn main(_spawner: Spawner) -> ! {
.send_async(&peer.peer_address, (data + fill.as_str()).as_bytes()) .send_async(&peer.peer_address, (data + fill.as_str()).as_bytes())
.await; .await;
println!("Send status: {:?}", status); println!("Send status: {:?}", status);
deep_sleep(&mut rtc, &delay, DEEP_SLEEP_TIME); deep_sleep(&mut lpwr, &delay, DEEP_SLEEP_TIME);
} }
} }
fn deep_sleep(rtc: &mut Rtc, delay: &Delay, time : u64) { fn deep_sleep(lpwr: &mut LowPower, delay: &Delay, time : u64) {
let timer = TimerWakeupSource::new(core::time::Duration::from_secs(time)); let timer = TimerWakeupSource::new(esp_hal::time::Duration::from_secs(time));
println!("Going sleep for {} seconds", time); println!("Going sleep for {} seconds", time);
delay.delay_millis(100); delay.delay_millis(100);
rtc.sleep_deep(&[&timer]); //rtc.sleep_deep(&[&timer]);
lpwr.sleep_deep(&[&timer]);
} }