[][src]Struct dwm1001::DWM1001

pub struct DWM1001 {
    pub pins: Pins,
    pub leds: Leds,
    pub uart: Uarte<UARTE0>,
    pub DW_RST: DW_RST,
    pub DW_IRQ: DW_IRQ,
    pub DW1000: DW1000<Spim<SPIM2>, P0_17<Output<PushPull>>, Uninitialized>,
    pub LIS2DH12: Twim<TWIM1>,
    pub CBP: CBP,
    pub CPUID: CPUID,
    pub DCB: DCB,
    pub DWT: DWT,
    pub FPB: FPB,
    pub FPU: FPU,
    pub ITM: ITM,
    pub MPU: MPU,
    pub NVIC: NVIC,
    pub SCB: SCB,
    pub SYST: SYST,
    pub TPIU: TPIU,
    pub FICR: FICR,
    pub UICR: UICR,
    pub BPROT: BPROT,
    pub POWER: POWER,
    pub CLOCK: CLOCK,
    pub RADIO: RADIO,
    pub UART0: UART0,
    pub SPIM0: SPIM0,
    pub SPIS0: SPIS0,
    pub TWIM0: TWIM0,
    pub TWIS0: TWIS0,
    pub SPI0: SPI0,
    pub TWI0: TWI0,
    pub SPIM1: SPIM1,
    pub SPIS1: SPIS1,
    pub TWIS1: TWIS1,
    pub SPI1: SPI1,
    pub TWI1: TWI1,
    pub NFCT: NFCT,
    pub GPIOTE: GPIOTE,
    pub SAADC: SAADC,
    pub TIMER0: TIMER0,
    pub TIMER1: TIMER1,
    pub TIMER2: TIMER2,
    pub RTC0: RTC0,
    pub TEMP: TEMP,
    pub RNG: RNG,
    pub ECB: ECB,
    pub CCM: CCM,
    pub AAR: AAR,
    pub WDT: WDT,
    pub RTC1: RTC1,
    pub QDEC: QDEC,
    pub COMP: COMP,
    pub LPCOMP: LPCOMP,
    pub SWI0: SWI0,
    pub EGU0: EGU0,
    pub SWI1: SWI1,
    pub EGU1: EGU1,
    pub SWI2: SWI2,
    pub EGU2: EGU2,
    pub SWI3: SWI3,
    pub EGU3: EGU3,
    pub SWI4: SWI4,
    pub EGU4: EGU4,
    pub SWI5: SWI5,
    pub EGU5: EGU5,
    pub TIMER3: TIMER3,
    pub TIMER4: TIMER4,
    pub PWM0: PWM0,
    pub PDM: PDM,
    pub NVMC: NVMC,
    pub PPI: PPI,
    pub MWU: MWU,
    pub PWM1: PWM1,
    pub PWM2: PWM2,
    pub RTC2: RTC2,
    pub I2S: I2S,
}

Provides access to the features of the DWM1001/DWM1001-Dev board

You can get an instance of this struct by using DWM1001::take or DWM1001::steal.

Fields

pins: Pins

The nRF52's pins

leds: Leds

The LEDs on the DWM1001-Dev board

This is only available if the dev feature is enabled.

uart: Uarte<UARTE0>

DWM1001 UART, wired to USB virtual UART port

This is only available if the dev feature is enabled.

DW_RST: DW_RST

The DW_RST pin (P0.24 on the nRF52)

Can be used to reset the DW1000 externally.

DW_IRQ: DW_IRQ

The DW_IRQ pin (P0.19 on the nRF52)

Can be used to wait for DW1000 interrupts.

DW1000: DW1000<Spim<SPIM2>, P0_17<Output<PushPull>>, Uninitialized>

The Decawave DW1000 Radio IC

LIS2DH12: Twim<TWIM1>

LIS2DH12 3-axis accelerometer

LIS2DH12 can be used either bare or together with the lis2dh12 driver.

The lis2dh12 driver implements the Accelerometer trait

CBP: CBP

nRF52 nRF52 core peripheral: Cache and branch predictor maintenance operations

CPUID: CPUID

nRF52 core peripheral: CPUID

DCB: DCB

nRF52 core peripheral: Debug Control Block

DWT: DWT

nRF52 core peripheral: Data Watchpoint and Trace unit

FPB: FPB

nRF52 core peripheral: Flash Patch and Breakpoint unit

FPU: FPU

nRF52 core peripheral: Floating Point Unit

ITM: ITM

nRF52 core peripheral: Instrumentation Trace Macrocell

MPU: MPU

nRF52 core peripheral: Memory Protection Unit

NVIC: NVIC

nRF52 core peripheral: Nested Vector Interrupt Controller

SCB: SCB

nRF52 core peripheral: System Control Block

SYST: SYST

nRF52 core peripheral: SysTick Timer

TPIU: TPIU

nRF52 core peripheral: Trace Port Interface Unit

FICR: FICR

nRF52 peripheral: FICR

UICR: UICR

nRF52 peripheral: UICR

BPROT: BPROT

nRF52 peripheral: BPROT

POWER: POWER

nRF52 peripheral: POWER

CLOCK: CLOCK

nRF52 peripheral: CLOCK

RADIO: RADIO

nRF52 peripheral: RADIO

UART0: UART0

nRF52 peripheral: UART0

SPIM0: SPIM0

nRF52 peripheral: SPIM0

SPIS0: SPIS0

nRF52 peripheral: SPIS0

TWIM0: TWIM0

nRF52 peripheral: TWIM0

TWIS0: TWIS0

nRF52 peripheral: TWIS0

SPI0: SPI0

nRF52 peripheral: SPI0

TWI0: TWI0

nRF52 peripheral: TWI0

SPIM1: SPIM1

nRF52 peripheral: SPIM1

SPIS1: SPIS1

nRF52 peripheral: SPIS1

TWIS1: TWIS1

nRF52 peripheral: TWIS1

SPI1: SPI1

nRF52 peripheral: SPI1

TWI1: TWI1

nRF52 peripheral: TWI1

NFCT: NFCT

nRF52 peripheral: NFCT

GPIOTE: GPIOTE

nRF52 peripheral: GPIOTE

SAADC: SAADC

nRF52 peripheral: SAADC

TIMER0: TIMER0

nRF52 peripheral: TIMER0

TIMER1: TIMER1

nRF52 peripheral: TIMER1

TIMER2: TIMER2

nRF52 peripheral: TIMER2

RTC0: RTC0

nRF52 peripheral: RTC0

TEMP: TEMP

nRF52 peripheral: TEMP

RNG: RNG

nRF52 peripheral: RNG

ECB: ECB

nRF52 peripheral: ECB

CCM: CCM

nRF52 peripheral: CCM

AAR: AAR

nRF52 peripheral: AAR

WDT: WDT

nRF52 peripheral: WDT

RTC1: RTC1

nRF52 peripheral: RTC1

QDEC: QDEC

nRF52 peripheral: QDEC

COMP: COMP

nRF52 peripheral: COMP

LPCOMP: LPCOMP

nRF52 peripheral: LPCOMP

SWI0: SWI0

nRF52 peripheral: SWI0

EGU0: EGU0

nRF52 peripheral: EGU0

SWI1: SWI1

nRF52 peripheral: SWI1

EGU1: EGU1

nRF52 peripheral: EGU1

SWI2: SWI2

nRF52 peripheral: SWI2

EGU2: EGU2

nRF52 peripheral: EGU2

SWI3: SWI3

nRF52 peripheral: SWI3

EGU3: EGU3

nRF52 peripheral: EGU3

SWI4: SWI4

nRF52 peripheral: SWI4

EGU4: EGU4

nRF52 peripheral: EGU4

SWI5: SWI5

nRF52 peripheral: SWI5

EGU5: EGU5

nRF52 peripheral: EGU5

TIMER3: TIMER3

nRF52 peripheral: TIMER3

TIMER4: TIMER4

nRF52 peripheral: TIMER4

PWM0: PWM0

nRF52 peripheral: PWM0

PDM: PDM

nRF52 peripheral: PDM

NVMC: NVMC

nRF52 peripheral: NVMC

PPI: PPI

nRF52 peripheral: PPI

MWU: MWU

nRF52 peripheral: MWU

PWM1: PWM1

nRF52 peripheral: PWM1

PWM2: PWM2

nRF52 peripheral: PWM2

RTC2: RTC2

nRF52 peripheral: RTC2

I2S: I2S

nRF52 peripheral: I2S

Methods

impl DWM1001[src]

pub fn take() -> Option<Self>[src]

Take ownership of a DWM1001 instance safely

To uphold a numer of safety guarantees made by this crate's UI, only one instance of DWM1001 must exist at any given time.

This method will return an instance of DWM1001 the first time it is called. It will return only None on subsequent calls.

pub unsafe fn steal() -> Self[src]

Take ownership of a DWM1001 instance, circumventing safety guarantees

This method produces an instance of DWM1001, regardless of whether another instance was created previously.

Safety

This method can be used to create multiple instances of DWM1001. Those instances can interfere with each other, causing all kinds of unexpected behavior and circumventing safety guarantees in many ways.

Always use DWM1001::take, unless you really know what you're doing.

Auto Trait Implementations

impl Send for DWM1001

impl !Sync for DWM1001

impl Unpin for DWM1001

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.