diff options
Diffstat (limited to 'examples')
| -rw-r--r-- | examples/stm32l0/src/bin/blinky.rs | 23 | ||||
| -rw-r--r-- | examples/stm32l0/src/bin/button_exti.rs | 38 |
2 files changed, 17 insertions, 44 deletions
diff --git a/examples/stm32l0/src/bin/blinky.rs b/examples/stm32l0/src/bin/blinky.rs index 833c14fbf..7ccebae55 100644 --- a/examples/stm32l0/src/bin/blinky.rs +++ b/examples/stm32l0/src/bin/blinky.rs | |||
| @@ -8,21 +8,20 @@ | |||
| 8 | 8 | ||
| 9 | #[path = "../example_common.rs"] | 9 | #[path = "../example_common.rs"] |
| 10 | mod example_common; | 10 | mod example_common; |
| 11 | use embassy_stm32::{ | 11 | |
| 12 | gpio::{Level, Output, Speed}, | 12 | use defmt::panic; |
| 13 | rcc::*, | 13 | use embassy::executor::Spawner; |
| 14 | }; | 14 | use embassy::time::{Duration, Timer}; |
| 15 | use embassy_stm32::gpio::{Level, Output, Speed}; | ||
| 16 | use embassy_stm32::rcc::Rcc; | ||
| 17 | use embassy_stm32::Peripherals; | ||
| 15 | use embedded_hal::digital::v2::OutputPin; | 18 | use embedded_hal::digital::v2::OutputPin; |
| 16 | use example_common::*; | 19 | use example_common::*; |
| 17 | 20 | ||
| 18 | use cortex_m_rt::entry; | 21 | #[embassy::main] |
| 19 | 22 | async fn main(_spawner: Spawner, mut p: Peripherals) { | |
| 20 | #[entry] | ||
| 21 | fn main() -> ! { | ||
| 22 | info!("Hello World!"); | 23 | info!("Hello World!"); |
| 23 | 24 | ||
| 24 | let mut p = embassy_stm32::init(Default::default()); | ||
| 25 | |||
| 26 | Rcc::new(p.RCC).enable_debug_wfe(&mut p.DBGMCU, true); | 25 | Rcc::new(p.RCC).enable_debug_wfe(&mut p.DBGMCU, true); |
| 27 | 26 | ||
| 28 | let mut led = Output::new(p.PB5, Level::High, Speed::Low); | 27 | let mut led = Output::new(p.PB5, Level::High, Speed::Low); |
| @@ -30,10 +29,10 @@ fn main() -> ! { | |||
| 30 | loop { | 29 | loop { |
| 31 | info!("high"); | 30 | info!("high"); |
| 32 | led.set_high().unwrap(); | 31 | led.set_high().unwrap(); |
| 33 | cortex_m::asm::delay(1_000_000); | 32 | Timer::after(Duration::from_millis(300)).await; |
| 34 | 33 | ||
| 35 | info!("low"); | 34 | info!("low"); |
| 36 | led.set_low().unwrap(); | 35 | led.set_low().unwrap(); |
| 37 | cortex_m::asm::delay(1_000_000); | 36 | Timer::after(Duration::from_millis(300)).await; |
| 38 | } | 37 | } |
| 39 | } | 38 | } |
diff --git a/examples/stm32l0/src/bin/button_exti.rs b/examples/stm32l0/src/bin/button_exti.rs index a7f734942..6ea0d9cc9 100644 --- a/examples/stm32l0/src/bin/button_exti.rs +++ b/examples/stm32l0/src/bin/button_exti.rs | |||
| @@ -8,20 +8,17 @@ | |||
| 8 | 8 | ||
| 9 | #[path = "../example_common.rs"] | 9 | #[path = "../example_common.rs"] |
| 10 | mod example_common; | 10 | mod example_common; |
| 11 | use embassy::executor::Executor; | 11 | |
| 12 | use embassy::time::Clock; | 12 | use defmt::panic; |
| 13 | use embassy::util::Forever; | 13 | use embassy::executor::Spawner; |
| 14 | use embassy_stm32::exti::ExtiInput; | 14 | use embassy_stm32::exti::ExtiInput; |
| 15 | use embassy_stm32::gpio::{Input, Pull}; | 15 | use embassy_stm32::gpio::{Input, Pull}; |
| 16 | use embassy_stm32::rcc; | 16 | use embassy_stm32::{rcc, Peripherals}; |
| 17 | use embassy_traits::gpio::{WaitForFallingEdge, WaitForRisingEdge}; | 17 | use embassy_traits::gpio::{WaitForFallingEdge, WaitForRisingEdge}; |
| 18 | use example_common::*; | 18 | use example_common::*; |
| 19 | 19 | ||
| 20 | use cortex_m_rt::entry; | 20 | #[embassy::main] |
| 21 | 21 | async fn main(_spawner: Spawner, mut p: Peripherals) { | |
| 22 | #[embassy::task] | ||
| 23 | async fn main_task() { | ||
| 24 | let mut p = embassy_stm32::init(Default::default()); | ||
| 25 | let mut rcc = rcc::Rcc::new(p.RCC); | 22 | let mut rcc = rcc::Rcc::new(p.RCC); |
| 26 | rcc.enable_debug_wfe(&mut p.DBGMCU, true); | 23 | rcc.enable_debug_wfe(&mut p.DBGMCU, true); |
| 27 | // Enables SYSCFG | 24 | // Enables SYSCFG |
| @@ -39,26 +36,3 @@ async fn main_task() { | |||
| 39 | info!("Released!"); | 36 | info!("Released!"); |
| 40 | } | 37 | } |
| 41 | } | 38 | } |
| 42 | |||
| 43 | struct ZeroClock; | ||
| 44 | |||
| 45 | impl Clock for ZeroClock { | ||
| 46 | fn now(&self) -> u64 { | ||
| 47 | 0 | ||
| 48 | } | ||
| 49 | } | ||
| 50 | |||
| 51 | static EXECUTOR: Forever<Executor> = Forever::new(); | ||
| 52 | |||
| 53 | #[entry] | ||
| 54 | fn main() -> ! { | ||
| 55 | info!("Hello World!"); | ||
| 56 | |||
| 57 | unsafe { embassy::time::set_clock(&ZeroClock) }; | ||
| 58 | |||
| 59 | let executor = EXECUTOR.put(Executor::new()); | ||
| 60 | |||
| 61 | executor.run(|spawner| { | ||
| 62 | unwrap!(spawner.spawn(main_task())); | ||
| 63 | }) | ||
| 64 | } | ||
