From 78f7d1b786d6b838cf80ddd0199707b0db3dc854 Mon Sep 17 00:00:00 2001 From: Bob McWhirter Date: Fri, 27 Aug 2021 16:10:50 -0400 Subject: [PATCH] Add example using ranged RNG. --- examples/stm32h7/src/bin/rng.rs | 35 +++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 examples/stm32h7/src/bin/rng.rs diff --git a/examples/stm32h7/src/bin/rng.rs b/examples/stm32h7/src/bin/rng.rs new file mode 100644 index 00000000..48aad26b --- /dev/null +++ b/examples/stm32h7/src/bin/rng.rs @@ -0,0 +1,35 @@ +#![no_std] +#![no_main] +#![feature(trait_alias)] +#![feature(type_alias_impl_trait)] +#![allow(incomplete_features)] + +#[path = "../example_common.rs"] +mod example_common; +use embassy::executor::Spawner; +use embassy::time::{Duration, Timer}; +use embassy_stm32::gpio::{Level, Output, Speed}; +use embassy_stm32::Peripherals; +use embedded_hal::digital::v2::OutputPin; +use example_common::*; +use embassy_stm32::rng::Random; +use embassy::traits::rng::Rng; + +#[embassy::main] +async fn main(_spawner: Spawner, p: Peripherals) { + info!("Hello World!"); + + let mut led = Output::new(p.PB14, Level::High, Speed::Low); + + let mut rng = Random::new(p.RNG); + + loop { + info!("high {}", unwrap!(rng.next(16).await) ); + unwrap!(led.set_high()); + Timer::after(Duration::from_millis(500)).await; + + info!("low {}", unwrap!(rng.next(16).await) ); + unwrap!(led.set_low()); + Timer::after(Duration::from_millis(500)).await; + } +}