From b3858441f76c43981ba13c13aafbd3bdfec3280f Mon Sep 17 00:00:00 2001 From: Dario Nieuwenhuis Date: Sat, 31 Oct 2020 22:37:24 +0100 Subject: Update examples. --- examples/src/bin/rtc_async.rs | 36 ++++++++++++++---------------------- 1 file changed, 14 insertions(+), 22 deletions(-) (limited to 'examples/src/bin/rtc_async.rs') diff --git a/examples/src/bin/rtc_async.rs b/examples/src/bin/rtc_async.rs index 30b181a93..5126a2cc8 100644 --- a/examples/src/bin/rtc_async.rs +++ b/examples/src/bin/rtc_async.rs @@ -8,11 +8,13 @@ use example_common::*; use core::mem::MaybeUninit; use cortex_m_rt::entry; -use embassy::executor::{task, Executor}; +use nrf52840_hal::clocks; + +use embassy::executor::{task, TimerExecutor}; use embassy::time::{Clock, Duration, Timer}; +use embassy::util::Forever; use embassy_nrf::pac; use embassy_nrf::rtc; -use nrf52840_hal::clocks; #[task] async fn run1() { @@ -30,8 +32,8 @@ async fn run2() { } } -static mut RTC: MaybeUninit> = MaybeUninit::uninit(); -static mut EXECUTOR: MaybeUninit>> = MaybeUninit::uninit(); +static RTC: Forever> = Forever::new(); +static EXECUTOR: Forever>> = Forever::new(); #[entry] fn main() -> ! { @@ -44,28 +46,18 @@ fn main() -> ! { .set_lfclk_src_external(clocks::LfOscConfiguration::NoExternalNoBypass) .start_lfclk(); - let rtc: &'static _ = unsafe { - let ptr = RTC.as_mut_ptr(); - ptr.write(rtc::RTC::new(p.RTC1)); - &*ptr - }; - + let rtc = RTC.put(rtc::RTC::new(p.RTC1)); rtc.start(); + unsafe { embassy::time::set_clock(rtc) }; - let executor: &'static _ = unsafe { - let ptr = EXECUTOR.as_mut_ptr(); - ptr.write(Executor::new(rtc.alarm0(), cortex_m::asm::sev)); - &*ptr - }; + let executor = EXECUTOR.put(TimerExecutor::new(rtc.alarm0(), cortex_m::asm::sev)); - unsafe { - executor.spawn(run1()).dewrap(); - executor.spawn(run2()).dewrap(); + executor.spawn(run1()).dewrap(); + executor.spawn(run2()).dewrap(); - loop { - executor.run(); - cortex_m::asm::wfe(); - } + loop { + executor.run(); + cortex_m::asm::wfe(); } } -- cgit