diff --git a/examples/rtic_bare7.rs b/examples/rtic_bare7.rs index 0f2dea18411d7e7c80325ad9cff46836177451f1..0d86a7fc55d8d69c25dec6c5fa461ad92538245c 100644 --- a/examples/rtic_bare7.rs +++ b/examples/rtic_bare7.rs @@ -17,7 +17,7 @@ use stm32f4xx_hal::{ gpio::{gpioa::PA5, Output, PushPull}, prelude::*, }; -; + use embedded_hal::digital::v2::{OutputPin, ToggleableOutputPin}; const OFFSET: u32 = 8_000_000; @@ -26,8 +26,10 @@ const OFFSET: u32 = 8_000_000; const APP: () = { struct Resources { // late resources - GPIOA: stm32::GPIOA, - // led: PA5<Output<PushPull>>, + // GPIOA: stm32::GPIOA, + + // Add led as a resource + led: PA5<Output<PushPull>>, } #[init(schedule = [toggle])] fn init(cx: init::Context) -> init::LateResources { @@ -55,7 +57,10 @@ const APP: () = { // pass on late resources init::LateResources { - GPIOA: device.GPIOA, + // GPIOA: device.GPIOA, + + // Init led as a late resource, while destroying GPIO as a variable + led: device.GPIOA.split().pa5.into_push_pull_output() } } @@ -67,15 +72,18 @@ const APP: () = { } } - #[task(resources = [GPIOA], schedule = [toggle])] + #[task(resources = [led], schedule = [toggle])] fn toggle(cx: toggle::Context) { static mut TOGGLE: bool = false; rprintln!("toggle @ {:?}", Instant::now()); + // Use led from resources if *TOGGLE { - cx.resources.GPIOA.bsrr.write(|w| w.bs5().set_bit()); + cx.resources.led.set_high(); + // cx.resources.GPIOA.bsrr.write(|w| w.bs5().set_bit()); } else { - cx.resources.GPIOA.bsrr.write(|w| w.br5().set_bit()); + cx.resources.led.set_low(); + // cx.resources.GPIOA.bsrr.write(|w| w.br5().set_bit()); } *TOGGLE = !*TOGGLE;