diff options
Diffstat (limited to 'examples/double_schedule.rs')
-rw-r--r-- | examples/double_schedule.rs | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/examples/double_schedule.rs b/examples/double_schedule.rs index 77a8e38e..403f3583 100644 --- a/examples/double_schedule.rs +++ b/examples/double_schedule.rs @@ -9,20 +9,35 @@ use panic_semihosting as _; #[rtic::app(device = lm3s6965, dispatchers = [SSI0])] mod app { + use dwt_systick_monotonic::{ + consts::{U0, U8}, + DwtSystick, + }; + use rtic::time::duration::Seconds; + + #[monotonic(binds = SysTick, default = true)] + type MyMono = DwtSystick<U8, U0, U0>; // 8 MHz + #[init] - fn init(_: init::Context) -> (init::LateResources, init::Monotonics) { + fn init(cx: init::Context) -> (init::LateResources, init::Monotonics) { task1::spawn().ok(); - (init::LateResources {}, init::Monotonics()) + let mut dcb = cx.core.DCB; + let dwt = cx.core.DWT; + let systick = cx.core.SYST; + + let mono = DwtSystick::new(&mut dcb, dwt, systick, 8_000_000); + + (init::LateResources {}, init::Monotonics(mono)) } #[task] fn task1(_cx: task1::Context) { - task2::schedule(_cx.scheduled + 100.cycles()).ok(); + task2::spawn_after(Seconds(1_u32)).ok(); } #[task] fn task2(_cx: task2::Context) { - task1::schedule(_cx.scheduled + 100.cycles()).ok(); + task1::spawn_after(Seconds(1_u32)).ok(); } } |