embassy-nrf

Crates

git

Versions

nrf52811

Flavors

Skip to main content

Input

Struct Input 

Source
pub struct Input<'d, M: Mode = Blocking> { /* private fields */ }
Expand description

GPIO input driver.

Implementations§

Source§

impl<'d> Input<'d, Blocking>

Source

pub fn new(pin: Peri<'d, impl Pin>, pull: Pull) -> Self

Create a blocking GPIO input driver for a Pin with the provided Pull configuration.

Source§

impl<'d> Input<'d, Async>

Source

pub fn new_async<T: GpiotePin>( pin: Peri<'d, T>, irq: impl Binding<T::Interrupt, InterruptHandler<T>> + 'd, pull: Pull, ) -> Self

Create an async GPIO input driver for a Pin with the provided Pull configuration.

The pin’s GPIOTE interrupt must be bound to InterruptHandler for this pin.

Source

pub async fn wait_for_high(&mut self)

Wait until the pin is high. If it is already high, return immediately.

Source

pub async fn wait_for_low(&mut self)

Wait until the pin is low. If it is already low, return immediately.

Source

pub async fn wait_for_rising_edge(&mut self)

Wait for the pin to undergo a transition from low to high.

Source

pub async fn wait_for_falling_edge(&mut self)

Wait for the pin to undergo a transition from high to low.

Source

pub async fn wait_for_any_edge(&mut self)

Wait for the pin to undergo any transition, i.e low to high OR high to low.

Source§

impl<'d, M: Mode> Input<'d, M>

Source

pub fn is_high(&self) -> bool

Get whether the pin input level is high.

Source

pub fn is_low(&self) -> bool

Get whether the pin input level is low.

Source

pub fn level(&self) -> Level

Get the pin input level.

Source§

impl<'d, M: Mode> Input<'d, M>

Source

pub fn persist(self)

Give up the pin, leaving it configured.

Dropping disconnects the pin, this doesn’t. The pin keeps its configuration after the borrow it came from ends.

Trait Implementations§

Source§

impl<'d, M: Mode> ErrorType for Input<'d, M>

Source§

type Error = !

Error type
Source§

impl<'d, M: Mode> InputPin for Input<'d, M>

Source§

type Error = !

Error type
Source§

fn is_high(&self) -> Result<bool, Self::Error>

Is the input pin high?
Source§

fn is_low(&self) -> Result<bool, Self::Error>

Is the input pin low?
Source§

impl<'d, M: Mode> InputPin for Input<'d, M>

Source§

fn is_high(&mut self) -> Result<bool, Self::Error>

Is the input pin high?
Source§

fn is_low(&mut self) -> Result<bool, Self::Error>

Is the input pin low?
Source§

impl<'d> Wait for Input<'d, Async>

Source§

async fn wait_for_high(&mut self) -> Result<(), Self::Error>

Wait until the pin is high. If it is already high, return immediately. Read more
Source§

async fn wait_for_low(&mut self) -> Result<(), Self::Error>

Wait until the pin is low. If it is already low, return immediately. Read more
Source§

async fn wait_for_rising_edge(&mut self) -> Result<(), Self::Error>

Wait for the pin to undergo a transition from low to high. Read more
Source§

async fn wait_for_falling_edge(&mut self) -> Result<(), Self::Error>

Wait for the pin to undergo a transition from high to low. Read more
Source§

async fn wait_for_any_edge(&mut self) -> Result<(), Self::Error>

Wait for the pin to undergo any transition, i.e low to high OR high to low.

Auto Trait Implementations§

§

impl<'d, M = Blocking> !UnwindSafe for Input<'d, M>

§

impl<'d, M> Freeze for Input<'d, M>
where Flex<'d, M>: Freeze,

§

impl<'d, M> RefUnwindSafe for Input<'d, M>
where Flex<'d, M>: RefUnwindSafe,

§

impl<'d, M> Send for Input<'d, M>
where Flex<'d, M>: Send,

§

impl<'d, M> Sync for Input<'d, M>
where Flex<'d, M>: Sync,

§

impl<'d, M> Unpin for Input<'d, M>
where Flex<'d, M>: Unpin,

§

impl<'d, M> UnsafeUnpin for Input<'d, M>
where Flex<'d, M>: UnsafeUnpin,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.