diff options
| author | Dario Nieuwenhuis <[email protected]> | 2021-01-03 01:40:40 +0100 |
|---|---|---|
| committer | Dario Nieuwenhuis <[email protected]> | 2021-01-03 01:40:40 +0100 |
| commit | ace4f40f8089f8cebbac023a4a1b960d976d2776 (patch) | |
| tree | da6148458eb7e98727df2c2f008aac3d66be8e6e /embassy-nrf-examples/src | |
| parent | 4ce51795f2f4a9d6803dc4101b04f2a191f8d39d (diff) | |
Introduce "peripheral" abstraction to share state between main and interrupt.
Diffstat (limited to 'embassy-nrf-examples/src')
| -rw-r--r-- | embassy-nrf-examples/src/bin/buffered_uart.rs | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/embassy-nrf-examples/src/bin/buffered_uart.rs b/embassy-nrf-examples/src/bin/buffered_uart.rs index 6e15fbcfa..68a76f71e 100644 --- a/embassy-nrf-examples/src/bin/buffered_uart.rs +++ b/embassy-nrf-examples/src/bin/buffered_uart.rs | |||
| @@ -8,15 +8,17 @@ use example_common::*; | |||
| 8 | 8 | ||
| 9 | use cortex_m_rt::entry; | 9 | use cortex_m_rt::entry; |
| 10 | use defmt::panic; | 10 | use defmt::panic; |
| 11 | use futures::pin_mut; | ||
| 12 | use nrf52840_hal::gpio; | 11 | use nrf52840_hal::gpio; |
| 13 | 12 | ||
| 14 | use embassy::executor::{task, Executor}; | 13 | use embassy::executor::{task, Executor}; |
| 15 | use embassy::io::{AsyncBufRead, AsyncBufReadExt, AsyncWrite, AsyncWriteExt}; | 14 | use embassy::io::{AsyncBufReadExt, AsyncWriteExt}; |
| 16 | use embassy::util::Forever; | 15 | use embassy::util::Forever; |
| 17 | use embassy_nrf::buffered_uarte; | 16 | use embassy_nrf::buffered_uarte; |
| 18 | use embassy_nrf::interrupt; | 17 | use embassy_nrf::interrupt; |
| 19 | 18 | ||
| 19 | static mut TX_BUFFER: [u8; 4096] = [0; 4096]; | ||
| 20 | static mut RX_BUFFER: [u8; 4096] = [0; 4096]; | ||
| 21 | |||
| 20 | #[task] | 22 | #[task] |
| 21 | async fn run() { | 23 | async fn run() { |
| 22 | let p = unwrap!(embassy_nrf::pac::Peripherals::take()); | 24 | let p = unwrap!(embassy_nrf::pac::Peripherals::take()); |
| @@ -34,14 +36,15 @@ async fn run() { | |||
| 34 | }; | 36 | }; |
| 35 | 37 | ||
| 36 | let irq = interrupt::take!(UARTE0_UART0); | 38 | let irq = interrupt::take!(UARTE0_UART0); |
| 37 | let u = buffered_uarte::BufferedUarte::new( | 39 | let mut u = buffered_uarte::BufferedUarte::new( |
| 38 | p.UARTE0, | 40 | p.UARTE0, |
| 39 | irq, | 41 | irq, |
| 42 | unsafe { &mut RX_BUFFER }, | ||
| 43 | unsafe { &mut TX_BUFFER }, | ||
| 40 | pins, | 44 | pins, |
| 41 | buffered_uarte::Parity::EXCLUDED, | 45 | buffered_uarte::Parity::EXCLUDED, |
| 42 | buffered_uarte::Baudrate::BAUD115200, | 46 | buffered_uarte::Baudrate::BAUD115200, |
| 43 | ); | 47 | ); |
| 44 | pin_mut!(u); | ||
| 45 | 48 | ||
| 46 | info!("uarte initialized!"); | 49 | info!("uarte initialized!"); |
| 47 | 50 | ||
