aboutsummaryrefslogtreecommitdiff
path: root/embassy-nrf-examples/src
diff options
context:
space:
mode:
authorDario Nieuwenhuis <[email protected]>2021-01-03 01:40:40 +0100
committerDario Nieuwenhuis <[email protected]>2021-01-03 01:40:40 +0100
commitace4f40f8089f8cebbac023a4a1b960d976d2776 (patch)
treeda6148458eb7e98727df2c2f008aac3d66be8e6e /embassy-nrf-examples/src
parent4ce51795f2f4a9d6803dc4101b04f2a191f8d39d (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.rs11
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
9use cortex_m_rt::entry; 9use cortex_m_rt::entry;
10use defmt::panic; 10use defmt::panic;
11use futures::pin_mut;
12use nrf52840_hal::gpio; 11use nrf52840_hal::gpio;
13 12
14use embassy::executor::{task, Executor}; 13use embassy::executor::{task, Executor};
15use embassy::io::{AsyncBufRead, AsyncBufReadExt, AsyncWrite, AsyncWriteExt}; 14use embassy::io::{AsyncBufReadExt, AsyncWriteExt};
16use embassy::util::Forever; 15use embassy::util::Forever;
17use embassy_nrf::buffered_uarte; 16use embassy_nrf::buffered_uarte;
18use embassy_nrf::interrupt; 17use embassy_nrf::interrupt;
19 18
19static mut TX_BUFFER: [u8; 4096] = [0; 4096];
20static mut RX_BUFFER: [u8; 4096] = [0; 4096];
21
20#[task] 22#[task]
21async fn run() { 23async 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