diff options
Diffstat (limited to 'examples/double_schedule.rs')
-rw-r--r-- | examples/double_schedule.rs | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/examples/double_schedule.rs b/examples/double_schedule.rs index 32477efe..403f3583 100644 --- a/examples/double_schedule.rs +++ b/examples/double_schedule.rs @@ -7,29 +7,37 @@ use panic_semihosting as _; -#[rtic::app(device = lm3s6965, monotonic = rtic::cyccnt::CYCCNT, dispatchers = [SSI0])] +#[rtic::app(device = lm3s6965, dispatchers = [SSI0])] mod app { - use rtic::cyccnt::U32Ext; + use dwt_systick_monotonic::{ + consts::{U0, U8}, + DwtSystick, + }; + use rtic::time::duration::Seconds; - #[resources] - struct Resources { - nothing: (), - } + #[monotonic(binds = SysTick, default = true)] + type MyMono = DwtSystick<U8, U0, U0>; // 8 MHz #[init] - fn init(_: init::Context) -> init::LateResources { + fn init(cx: init::Context) -> (init::LateResources, init::Monotonics) { task1::spawn().ok(); - init::LateResources { nothing: () } + 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(); } } |