nrf: nicer Peripherals api, add take()

This commit is contained in:
Dario Nieuwenhuis
2021-03-21 21:58:59 +01:00
parent d5ff1a0ae3
commit a134fce122
7 changed files with 175 additions and 143 deletions

View File

@ -6,18 +6,18 @@
#[path = "../example_common.rs"]
mod example_common;
use example_common::*;
use core::pin::Pin;
use cortex_m_rt::entry;
use defmt::panic;
use embassy::executor::{task, Executor};
use embassy::traits::gpio::{WaitForHigh, WaitForLow};
use embassy::util::Forever;
use embassy_nrf::gpio::{AnyPin, Input, Pin as _, Pull};
use embassy_nrf::gpiote::{self, PortInput};
use embassy_nrf::interrupt;
use embassy_nrf::Peripherals;
use example_common::*;
async fn button(n: usize, mut pin: PortInput<AnyPin>) {
loop {
@ -30,7 +30,7 @@ async fn button(n: usize, mut pin: PortInput<AnyPin>) {
#[task]
async fn run() {
let p = unsafe { embassy_nrf::peripherals::Peripherals::steal() };
let p = Peripherals::take().unwrap();
let g = gpiote::initialize(p.gpiote, interrupt::take!(GPIOTE));

View File

@ -6,17 +6,16 @@
#[path = "../example_common.rs"]
mod example_common;
use embassy_nrf::peripherals::Peripherals;
use example_common::*;
use cortex_m_rt::entry;
use defmt::{assert_eq, panic};
use futures::pin_mut;
use embassy::executor::{task, Executor};
use embassy::traits::flash::Flash;
use embassy::util::Forever;
use embassy_nrf::Peripherals;
use embassy_nrf::{interrupt, qspi};
use example_common::*;
use futures::pin_mut;
const PAGE_SIZE: usize = 4096;
@ -27,7 +26,7 @@ struct AlignedBuf([u8; 4096]);
#[task]
async fn run() {
let p = unsafe { Peripherals::steal() };
let p = Peripherals::take().unwrap();
let csn = p.p0_17;
let sck = p.p0_19;

View File

@ -6,26 +6,25 @@
#[path = "../example_common.rs"]
mod example_common;
use embassy_nrf::gpio::{Level, Output, OutputDrive};
use embassy_nrf::peripherals::Peripherals;
use embassy_traits::spi::FullDuplex;
use example_common::*;
use cortex_m_rt::entry;
use defmt::panic;
use embassy::executor::{task, Executor};
use embassy::util::Forever;
use embassy_nrf::gpio::{Level, Output, OutputDrive};
use embassy_nrf::Peripherals;
use embassy_nrf::{interrupt, pac, rtc, spim};
use embassy_traits::spi::FullDuplex;
use embedded_hal::digital::v2::*;
use example_common::*;
use futures::pin_mut;
use nrf52840_hal::clocks;
use embassy_nrf::{interrupt, pac, rtc, spim};
#[task]
async fn run() {
info!("running!");
let mut p = unsafe { Peripherals::steal() };
let p = Peripherals::take().unwrap();
let config = spim::Config {
frequency: spim::Frequency::M16,
@ -33,7 +32,7 @@ async fn run() {
orc: 0x00,
};
let mut irq = interrupt::take!(SPIM3);
let irq = interrupt::take!(SPIM3);
let spim = spim::Spim::new(p.spim3, irq, p.p0_29, p.p0_28, p.p0_30, config);
pin_mut!(spim);