From 78f7d1b786d6b838cf80ddd0199707b0db3dc854 Mon Sep 17 00:00:00 2001 From: Bob McWhirter Date: Fri, 27 Aug 2021 16:10:50 -0400 Subject: 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 (limited to 'examples') diff --git a/examples/stm32h7/src/bin/rng.rs b/examples/stm32h7/src/bin/rng.rs new file mode 100644 index 000000000..48aad26b1 --- /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; + } +} -- cgit From 7fa3b27cac6f647ae5e11bd04a802027fb96a03c Mon Sep 17 00:00:00 2001 From: Bob McWhirter Date: Mon, 30 Aug 2021 09:55:29 -0400 Subject: Move random utils to another trait. --- examples/stm32h7/src/bin/rng.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'examples') diff --git a/examples/stm32h7/src/bin/rng.rs b/examples/stm32h7/src/bin/rng.rs index 48aad26b1..f779b2f69 100644 --- a/examples/stm32h7/src/bin/rng.rs +++ b/examples/stm32h7/src/bin/rng.rs @@ -13,7 +13,7 @@ use embassy_stm32::Peripherals; use embedded_hal::digital::v2::OutputPin; use example_common::*; use embassy_stm32::rng::Random; -use embassy::traits::rng::Rng; +use embassy::traits::rng::Random as _; #[embassy::main] async fn main(_spawner: Spawner, p: Peripherals) { -- cgit From fd7a76c59e8a190781aea476d199bda826dd5031 Mon Sep 17 00:00:00 2001 From: Bob McWhirter Date: Mon, 30 Aug 2021 09:57:31 -0400 Subject: Formatting. Always formatting. --- examples/stm32h7/src/bin/rng.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'examples') diff --git a/examples/stm32h7/src/bin/rng.rs b/examples/stm32h7/src/bin/rng.rs index f779b2f69..fea88c410 100644 --- a/examples/stm32h7/src/bin/rng.rs +++ b/examples/stm32h7/src/bin/rng.rs @@ -8,12 +8,12 @@ mod example_common; use embassy::executor::Spawner; use embassy::time::{Duration, Timer}; +use embassy::traits::rng::Random as _; use embassy_stm32::gpio::{Level, Output, Speed}; +use embassy_stm32::rng::Random; use embassy_stm32::Peripherals; use embedded_hal::digital::v2::OutputPin; use example_common::*; -use embassy_stm32::rng::Random; -use embassy::traits::rng::Random as _; #[embassy::main] async fn main(_spawner: Spawner, p: Peripherals) { @@ -24,11 +24,11 @@ async fn main(_spawner: Spawner, p: Peripherals) { let mut rng = Random::new(p.RNG); loop { - info!("high {}", unwrap!(rng.next(16).await) ); + 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) ); + info!("low {}", unwrap!(rng.next(16).await)); unwrap!(led.set_low()); Timer::after(Duration::from_millis(500)).await; } -- cgit From 37ceae908b39fcf1ef3b38680cef240ed6b1e867 Mon Sep 17 00:00:00 2001 From: Bob McWhirter Date: Wed, 1 Sep 2021 09:39:33 -0400 Subject: Rename Random impl to Rng. Create Random struct providing next_x(range) for all T:Rng. --- examples/stm32h7/src/bin/eth.rs | 6 +++--- examples/stm32h7/src/bin/rng.rs | 10 +++++----- 2 files changed, 8 insertions(+), 8 deletions(-) (limited to 'examples') diff --git a/examples/stm32h7/src/bin/eth.rs b/examples/stm32h7/src/bin/eth.rs index 4a9f261c2..df4931455 100644 --- a/examples/stm32h7/src/bin/eth.rs +++ b/examples/stm32h7/src/bin/eth.rs @@ -21,7 +21,7 @@ use embassy_net::{ }; use embassy_stm32::eth::lan8742a::LAN8742A; use embassy_stm32::eth::{Ethernet, State}; -use embassy_stm32::rng::Random; +use embassy_stm32::rng::Rng; use embassy_stm32::{interrupt, peripherals}; use heapless::Vec; use panic_probe as _; @@ -81,7 +81,7 @@ fn _embassy_rand(buf: &mut [u8]) { }); } -static mut RNG_INST: Option> = None; +static mut RNG_INST: Option> = None; static EXECUTOR: Forever = Forever::new(); static STATE: Forever> = Forever::new(); @@ -97,7 +97,7 @@ fn main() -> ! { let p = embassy_stm32::init(config()); - let rng = Random::new(p.RNG); + let rng = Rng::new(p.RNG); unsafe { RNG_INST.replace(rng); } diff --git a/examples/stm32h7/src/bin/rng.rs b/examples/stm32h7/src/bin/rng.rs index fea88c410..cf1b14ea5 100644 --- a/examples/stm32h7/src/bin/rng.rs +++ b/examples/stm32h7/src/bin/rng.rs @@ -8,9 +8,9 @@ mod example_common; use embassy::executor::Spawner; use embassy::time::{Duration, Timer}; -use embassy::traits::rng::Random as _; use embassy_stm32::gpio::{Level, Output, Speed}; -use embassy_stm32::rng::Random; +use embassy_stm32::rng::Rng; +use embassy::traits::rng::Random; use embassy_stm32::Peripherals; use embedded_hal::digital::v2::OutputPin; use example_common::*; @@ -21,14 +21,14 @@ async fn main(_spawner: Spawner, p: Peripherals) { let mut led = Output::new(p.PB14, Level::High, Speed::Low); - let mut rng = Random::new(p.RNG); + let mut rng = Random::new(Rng::new(p.RNG)); loop { - info!("high {}", unwrap!(rng.next(16).await)); + info!("high {}", unwrap!(rng.next_u8(16).await)); unwrap!(led.set_high()); Timer::after(Duration::from_millis(500)).await; - info!("low {}", unwrap!(rng.next(16).await)); + info!("low {}", unwrap!(rng.next_u8(16).await)); unwrap!(led.set_low()); Timer::after(Duration::from_millis(500)).await; } -- cgit From aaa4a477d56bdcaeff36723ce7fdaba0dce054d1 Mon Sep 17 00:00:00 2001 From: Bob McWhirter Date: Wed, 1 Sep 2021 09:47:46 -0400 Subject: Formatting. --- examples/stm32h7/src/bin/rng.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'examples') diff --git a/examples/stm32h7/src/bin/rng.rs b/examples/stm32h7/src/bin/rng.rs index cf1b14ea5..2dc8268b5 100644 --- a/examples/stm32h7/src/bin/rng.rs +++ b/examples/stm32h7/src/bin/rng.rs @@ -8,9 +8,9 @@ mod example_common; use embassy::executor::Spawner; use embassy::time::{Duration, Timer}; +use embassy::traits::rng::Random; use embassy_stm32::gpio::{Level, Output, Speed}; use embassy_stm32::rng::Rng; -use embassy::traits::rng::Random; use embassy_stm32::Peripherals; use embedded_hal::digital::v2::OutputPin; use example_common::*; -- cgit