diff options
| author | Dario Nieuwenhuis <[email protected]> | 2021-05-12 01:57:01 +0200 |
|---|---|---|
| committer | Dario Nieuwenhuis <[email protected]> | 2021-05-17 00:57:37 +0200 |
| commit | 0310e4d458b86df31f1765104eb3aa9a6ee09bfc (patch) | |
| tree | aca167ae6e37442cafc932b3c729e37082d23b04 /embassy-nrf-examples/src | |
| parent | bfc7f52e6dd7b5ad12fa1f09483fa60f2732ae0c (diff) | |
Add `init` fn. Initializes hw and returns Peripherals.
Diffstat (limited to 'embassy-nrf-examples/src')
| -rw-r--r-- | embassy-nrf-examples/src/bin/blinky.rs | 3 | ||||
| -rw-r--r-- | embassy-nrf-examples/src/bin/buffered_uart.rs | 4 | ||||
| -rw-r--r-- | embassy-nrf-examples/src/bin/executor_fairness_test.rs | 4 | ||||
| -rw-r--r-- | embassy-nrf-examples/src/bin/gpiote_channel.rs | 6 | ||||
| -rw-r--r-- | embassy-nrf-examples/src/bin/gpiote_port.rs | 4 | ||||
| -rw-r--r-- | embassy-nrf-examples/src/bin/multiprio.rs | 3 | ||||
| -rw-r--r-- | embassy-nrf-examples/src/bin/ppi.rs | 4 | ||||
| -rw-r--r-- | embassy-nrf-examples/src/bin/qspi.rs | 4 | ||||
| -rw-r--r-- | embassy-nrf-examples/src/bin/raw_spawn.rs | 3 | ||||
| -rw-r--r-- | embassy-nrf-examples/src/bin/spim.rs | 4 | ||||
| -rw-r--r-- | embassy-nrf-examples/src/bin/timer.rs | 3 | ||||
| -rw-r--r-- | embassy-nrf-examples/src/bin/uart.rs | 32 | ||||
| -rw-r--r-- | embassy-nrf-examples/src/bin/uart_idle.rs | 4 |
13 files changed, 16 insertions, 62 deletions
diff --git a/embassy-nrf-examples/src/bin/blinky.rs b/embassy-nrf-examples/src/bin/blinky.rs index 4cb09bee7..e6fc854b5 100644 --- a/embassy-nrf-examples/src/bin/blinky.rs +++ b/embassy-nrf-examples/src/bin/blinky.rs | |||
| @@ -17,8 +17,7 @@ use embassy_nrf::Peripherals; | |||
| 17 | use embedded_hal::digital::v2::OutputPin; | 17 | use embedded_hal::digital::v2::OutputPin; |
| 18 | 18 | ||
| 19 | #[embassy::main] | 19 | #[embassy::main] |
| 20 | async fn main(spawner: Spawner) { | 20 | async fn main(spawner: Spawner, p: Peripherals) { |
| 21 | let p = Peripherals::take().unwrap(); | ||
| 22 | let mut led = Output::new(p.P0_13, Level::Low, OutputDrive::Standard); | 21 | let mut led = Output::new(p.P0_13, Level::Low, OutputDrive::Standard); |
| 23 | 22 | ||
| 24 | loop { | 23 | loop { |
diff --git a/embassy-nrf-examples/src/bin/buffered_uart.rs b/embassy-nrf-examples/src/bin/buffered_uart.rs index 8f5d9fb2e..b3a621c6b 100644 --- a/embassy-nrf-examples/src/bin/buffered_uart.rs +++ b/embassy-nrf-examples/src/bin/buffered_uart.rs | |||
| @@ -17,9 +17,7 @@ use example_common::*; | |||
| 17 | use futures::pin_mut; | 17 | use futures::pin_mut; |
| 18 | 18 | ||
| 19 | #[embassy::main] | 19 | #[embassy::main] |
| 20 | async fn main(spawner: Spawner) { | 20 | async fn main(spawner: Spawner, p: Peripherals) { |
| 21 | let p = Peripherals::take().unwrap(); | ||
| 22 | |||
| 23 | let mut config = uarte::Config::default(); | 21 | let mut config = uarte::Config::default(); |
| 24 | config.parity = uarte::Parity::EXCLUDED; | 22 | config.parity = uarte::Parity::EXCLUDED; |
| 25 | config.baudrate = uarte::Baudrate::BAUD115200; | 23 | config.baudrate = uarte::Baudrate::BAUD115200; |
diff --git a/embassy-nrf-examples/src/bin/executor_fairness_test.rs b/embassy-nrf-examples/src/bin/executor_fairness_test.rs index 3ea74316e..ca9bcc1e6 100644 --- a/embassy-nrf-examples/src/bin/executor_fairness_test.rs +++ b/embassy-nrf-examples/src/bin/executor_fairness_test.rs | |||
| @@ -13,7 +13,7 @@ use core::task::Poll; | |||
| 13 | use defmt::panic; | 13 | use defmt::panic; |
| 14 | use embassy::executor::Spawner; | 14 | use embassy::executor::Spawner; |
| 15 | use embassy::time::{Duration, Instant, Timer}; | 15 | use embassy::time::{Duration, Instant, Timer}; |
| 16 | use embassy_nrf::interrupt; | 16 | use embassy_nrf::{interrupt, Peripherals}; |
| 17 | 17 | ||
| 18 | #[embassy::task] | 18 | #[embassy::task] |
| 19 | async fn run1() { | 19 | async fn run1() { |
| @@ -40,7 +40,7 @@ async fn run3() { | |||
| 40 | } | 40 | } |
| 41 | 41 | ||
| 42 | #[embassy::main] | 42 | #[embassy::main] |
| 43 | async fn main(spawner: Spawner) { | 43 | async fn main(spawner: Spawner, p: Peripherals) { |
| 44 | unwrap!(spawner.spawn(run1())); | 44 | unwrap!(spawner.spawn(run1())); |
| 45 | unwrap!(spawner.spawn(run2())); | 45 | unwrap!(spawner.spawn(run2())); |
| 46 | unwrap!(spawner.spawn(run3())); | 46 | unwrap!(spawner.spawn(run3())); |
diff --git a/embassy-nrf-examples/src/bin/gpiote_channel.rs b/embassy-nrf-examples/src/bin/gpiote_channel.rs index ee670acd5..d52ed7767 100644 --- a/embassy-nrf-examples/src/bin/gpiote_channel.rs +++ b/embassy-nrf-examples/src/bin/gpiote_channel.rs | |||
| @@ -12,13 +12,11 @@ use example_common::*; | |||
| 12 | use defmt::panic; | 12 | use defmt::panic; |
| 13 | use embassy::executor::Spawner; | 13 | use embassy::executor::Spawner; |
| 14 | use embassy_nrf::gpio::{Input, Pull}; | 14 | use embassy_nrf::gpio::{Input, Pull}; |
| 15 | use embassy_nrf::gpiote::{self, InputChannel, InputChannelPolarity}; | 15 | use embassy_nrf::gpiote::{InputChannel, InputChannelPolarity}; |
| 16 | use embassy_nrf::{interrupt, Peripherals}; | 16 | use embassy_nrf::{interrupt, Peripherals}; |
| 17 | 17 | ||
| 18 | #[embassy::main] | 18 | #[embassy::main] |
| 19 | async fn main(spawner: Spawner) { | 19 | async fn main(spawner: Spawner, p: Peripherals) { |
| 20 | let p = Peripherals::take().unwrap(); | ||
| 21 | |||
| 22 | info!("Starting!"); | 20 | info!("Starting!"); |
| 23 | 21 | ||
| 24 | let ch1 = InputChannel::new( | 22 | let ch1 = InputChannel::new( |
diff --git a/embassy-nrf-examples/src/bin/gpiote_port.rs b/embassy-nrf-examples/src/bin/gpiote_port.rs index 717d3398b..4a7951cd3 100644 --- a/embassy-nrf-examples/src/bin/gpiote_port.rs +++ b/embassy-nrf-examples/src/bin/gpiote_port.rs | |||
| @@ -28,9 +28,7 @@ async fn button_task(n: usize, mut pin: PortInput<'static, AnyPin>) { | |||
| 28 | } | 28 | } |
| 29 | 29 | ||
| 30 | #[embassy::main] | 30 | #[embassy::main] |
| 31 | async fn main(spawner: Spawner) { | 31 | async fn main(spawner: Spawner, p: Peripherals) { |
| 32 | let p = Peripherals::take().unwrap(); | ||
| 33 | |||
| 34 | info!("Starting!"); | 32 | info!("Starting!"); |
| 35 | 33 | ||
| 36 | let btn1 = PortInput::new(Input::new(p.P0_11.degrade(), Pull::Up)); | 34 | let btn1 = PortInput::new(Input::new(p.P0_11.degrade(), Pull::Up)); |
diff --git a/embassy-nrf-examples/src/bin/multiprio.rs b/embassy-nrf-examples/src/bin/multiprio.rs index 9ed5c1368..79fa029b3 100644 --- a/embassy-nrf-examples/src/bin/multiprio.rs +++ b/embassy-nrf-examples/src/bin/multiprio.rs | |||
| @@ -126,9 +126,8 @@ static EXECUTOR_LOW: Forever<Executor> = Forever::new(); | |||
| 126 | fn main() -> ! { | 126 | fn main() -> ! { |
| 127 | info!("Hello World!"); | 127 | info!("Hello World!"); |
| 128 | 128 | ||
| 129 | let p = unwrap!(embassy_nrf::Peripherals::take()); | 129 | let p = embassy_nrf::init(Default::default()); |
| 130 | 130 | ||
| 131 | unsafe { embassy_nrf::system::configure(Default::default()) }; | ||
| 132 | let rtc = RTC.put(rtc::RTC::new(p.RTC1, interrupt::take!(RTC1))); | 131 | let rtc = RTC.put(rtc::RTC::new(p.RTC1, interrupt::take!(RTC1))); |
| 133 | rtc.start(); | 132 | rtc.start(); |
| 134 | unsafe { embassy::time::set_clock(rtc) }; | 133 | unsafe { embassy::time::set_clock(rtc) }; |
diff --git a/embassy-nrf-examples/src/bin/ppi.rs b/embassy-nrf-examples/src/bin/ppi.rs index 3c39e032e..47782ed29 100644 --- a/embassy-nrf-examples/src/bin/ppi.rs +++ b/embassy-nrf-examples/src/bin/ppi.rs | |||
| @@ -19,9 +19,7 @@ use embassy_nrf::{interrupt, Peripherals}; | |||
| 19 | use gpiote::{OutputChannel, OutputChannelPolarity}; | 19 | use gpiote::{OutputChannel, OutputChannelPolarity}; |
| 20 | 20 | ||
| 21 | #[embassy::main] | 21 | #[embassy::main] |
| 22 | async fn main(spawner: Spawner) { | 22 | async fn main(spawner: Spawner, p: Peripherals) { |
| 23 | let p = Peripherals::take().unwrap(); | ||
| 24 | |||
| 25 | info!("Starting!"); | 23 | info!("Starting!"); |
| 26 | 24 | ||
| 27 | let button1 = InputChannel::new( | 25 | let button1 = InputChannel::new( |
diff --git a/embassy-nrf-examples/src/bin/qspi.rs b/embassy-nrf-examples/src/bin/qspi.rs index 28cde6e51..3dc027f6f 100644 --- a/embassy-nrf-examples/src/bin/qspi.rs +++ b/embassy-nrf-examples/src/bin/qspi.rs | |||
| @@ -23,9 +23,7 @@ const PAGE_SIZE: usize = 4096; | |||
| 23 | struct AlignedBuf([u8; 4096]); | 23 | struct AlignedBuf([u8; 4096]); |
| 24 | 24 | ||
| 25 | #[embassy::main] | 25 | #[embassy::main] |
| 26 | async fn main(spawner: Spawner) { | 26 | async fn main(spawner: Spawner, p: Peripherals) { |
| 27 | let p = Peripherals::take().unwrap(); | ||
| 28 | |||
| 29 | let csn = p.P0_17; | 27 | let csn = p.P0_17; |
| 30 | let sck = p.P0_19; | 28 | let sck = p.P0_19; |
| 31 | let io0 = p.P0_20; | 29 | let io0 = p.P0_20; |
diff --git a/embassy-nrf-examples/src/bin/raw_spawn.rs b/embassy-nrf-examples/src/bin/raw_spawn.rs index f8e021d9b..78de7b100 100644 --- a/embassy-nrf-examples/src/bin/raw_spawn.rs +++ b/embassy-nrf-examples/src/bin/raw_spawn.rs | |||
| @@ -37,9 +37,8 @@ static EXECUTOR: Forever<Executor> = Forever::new(); | |||
| 37 | fn main() -> ! { | 37 | fn main() -> ! { |
| 38 | info!("Hello World!"); | 38 | info!("Hello World!"); |
| 39 | 39 | ||
| 40 | let p = unwrap!(embassy_nrf::Peripherals::take()); | 40 | let p = embassy_nrf::init(Default::default()); |
| 41 | 41 | ||
| 42 | unsafe { embassy_nrf::system::configure(Default::default()) }; | ||
| 43 | let rtc = RTC.put(rtc::RTC::new(p.RTC1, interrupt::take!(RTC1))); | 42 | let rtc = RTC.put(rtc::RTC::new(p.RTC1, interrupt::take!(RTC1))); |
| 44 | rtc.start(); | 43 | rtc.start(); |
| 45 | unsafe { embassy::time::set_clock(rtc) }; | 44 | unsafe { embassy::time::set_clock(rtc) }; |
diff --git a/embassy-nrf-examples/src/bin/spim.rs b/embassy-nrf-examples/src/bin/spim.rs index ccda75765..df921fc86 100644 --- a/embassy-nrf-examples/src/bin/spim.rs +++ b/embassy-nrf-examples/src/bin/spim.rs | |||
| @@ -19,11 +19,9 @@ use embedded_hal::digital::v2::*; | |||
| 19 | use example_common::*; | 19 | use example_common::*; |
| 20 | 20 | ||
| 21 | #[embassy::main] | 21 | #[embassy::main] |
| 22 | async fn main(spawner: Spawner) { | 22 | async fn main(spawner: Spawner, p: Peripherals) { |
| 23 | info!("running!"); | 23 | info!("running!"); |
| 24 | 24 | ||
| 25 | let p = unsafe { Peripherals::steal() }; | ||
| 26 | |||
| 27 | let mut config = spim::Config::default(); | 25 | let mut config = spim::Config::default(); |
| 28 | config.frequency = spim::Frequency::M16; | 26 | config.frequency = spim::Frequency::M16; |
| 29 | 27 | ||
diff --git a/embassy-nrf-examples/src/bin/timer.rs b/embassy-nrf-examples/src/bin/timer.rs index a2b717bc1..ffbbb7841 100644 --- a/embassy-nrf-examples/src/bin/timer.rs +++ b/embassy-nrf-examples/src/bin/timer.rs | |||
| @@ -7,6 +7,7 @@ | |||
| 7 | 7 | ||
| 8 | #[path = "../example_common.rs"] | 8 | #[path = "../example_common.rs"] |
| 9 | mod example_common; | 9 | mod example_common; |
| 10 | use embassy_nrf::Peripherals; | ||
| 10 | use example_common::*; | 11 | use example_common::*; |
| 11 | 12 | ||
| 12 | use defmt::panic; | 13 | use defmt::panic; |
| @@ -30,7 +31,7 @@ async fn run2() { | |||
| 30 | } | 31 | } |
| 31 | 32 | ||
| 32 | #[embassy::main] | 33 | #[embassy::main] |
| 33 | async fn main(spawner: Spawner) { | 34 | async fn main(spawner: Spawner, p: Peripherals) { |
| 34 | unwrap!(spawner.spawn(run1())); | 35 | unwrap!(spawner.spawn(run1())); |
| 35 | unwrap!(spawner.spawn(run2())); | 36 | unwrap!(spawner.spawn(run2())); |
| 36 | } | 37 | } |
diff --git a/embassy-nrf-examples/src/bin/uart.rs b/embassy-nrf-examples/src/bin/uart.rs index 23fc89312..9a0e65d3e 100644 --- a/embassy-nrf-examples/src/bin/uart.rs +++ b/embassy-nrf-examples/src/bin/uart.rs | |||
| @@ -17,9 +17,7 @@ use embassy_nrf::gpio::NoPin; | |||
| 17 | use embassy_nrf::{interrupt, uarte, Peripherals}; | 17 | use embassy_nrf::{interrupt, uarte, Peripherals}; |
| 18 | 18 | ||
| 19 | #[embassy::main] | 19 | #[embassy::main] |
| 20 | async fn main(spawner: Spawner) { | 20 | async fn main(spawner: Spawner, p: Peripherals) { |
| 21 | let p = unsafe { Peripherals::steal() }; | ||
| 22 | |||
| 23 | let mut config = uarte::Config::default(); | 21 | let mut config = uarte::Config::default(); |
| 24 | config.parity = uarte::Parity::EXCLUDED; | 22 | config.parity = uarte::Parity::EXCLUDED; |
| 25 | config.baudrate = uarte::Baudrate::BAUD115200; | 23 | config.baudrate = uarte::Baudrate::BAUD115200; |
| @@ -42,33 +40,5 @@ async fn main(spawner: Spawner) { | |||
| 42 | unwrap!(uart.read(&mut buf).await); | 40 | unwrap!(uart.read(&mut buf).await); |
| 43 | info!("writing..."); | 41 | info!("writing..."); |
| 44 | unwrap!(uart.write(&buf).await); | 42 | unwrap!(uart.write(&buf).await); |
| 45 | |||
| 46 | /* | ||
| 47 | // `receive()` doesn't return until the buffer has been completely filled with | ||
| 48 | // incoming data, which in this case is 8 bytes. | ||
| 49 | // | ||
| 50 | // This example shows how to use `select` to run an uart receive concurrently with a | ||
| 51 | // 1 second timer, effectively adding a timeout to the receive operation. | ||
| 52 | let recv_fut = uart.read(&mut buf); | ||
| 53 | let timer_fut = Timer::after(Duration::from_millis(1000)); | ||
| 54 | let received_len = match select(recv_fut, timer_fut).await { | ||
| 55 | // recv_fut completed first, so we've received `buf_len` bytes. | ||
| 56 | Either::Left(_) => buf_len, | ||
| 57 | // timer_fut completed first. `select` gives us back the future that didn't complete, which | ||
| 58 | // is `recv_fut` in this case, so we can do further stuff with it. | ||
| 59 | // | ||
| 60 | // The recv_fut would stop the uart read automatically when dropped. However, we want to know how | ||
| 61 | // many bytes have been received, so we have to "gracefully stop" it with `.stop()`. | ||
| 62 | Either::Right((_, recv_fut)) => recv_fut.stop().await, | ||
| 63 | }; | ||
| 64 | let received = &mut buf[..received_len]; | ||
| 65 | |||
| 66 | if !received.is_empty() { | ||
| 67 | info!("read done, got {}", received); | ||
| 68 | |||
| 69 | // Echo back received data | ||
| 70 | unwrap!(uart.write(received).await); | ||
| 71 | } | ||
| 72 | */ | ||
| 73 | } | 43 | } |
| 74 | } | 44 | } |
diff --git a/embassy-nrf-examples/src/bin/uart_idle.rs b/embassy-nrf-examples/src/bin/uart_idle.rs index 54d524ae5..a97c65933 100644 --- a/embassy-nrf-examples/src/bin/uart_idle.rs +++ b/embassy-nrf-examples/src/bin/uart_idle.rs | |||
| @@ -18,9 +18,7 @@ use embassy_nrf::gpio::NoPin; | |||
| 18 | use embassy_nrf::{interrupt, uarte, Peripherals}; | 18 | use embassy_nrf::{interrupt, uarte, Peripherals}; |
| 19 | 19 | ||
| 20 | #[embassy::main] | 20 | #[embassy::main] |
| 21 | async fn main(spawner: Spawner) { | 21 | async fn main(spawner: Spawner, p: Peripherals) { |
| 22 | let p = unsafe { Peripherals::steal() }; | ||
| 23 | |||
| 24 | let mut config = uarte::Config::default(); | 22 | let mut config = uarte::Config::default(); |
| 25 | config.parity = uarte::Parity::EXCLUDED; | 23 | config.parity = uarte::Parity::EXCLUDED; |
| 26 | config.baudrate = uarte::Baudrate::BAUD115200; | 24 | config.baudrate = uarte::Baudrate::BAUD115200; |
