embassy-rp

Crates

git

Versions

rp2040

Flavors

embassy_rp::pio

Struct Common

Source
pub struct Common<'d, PIO: Instance> { /* private fields */ }
Expand description

PIO handle.

Implementations§

Source§

impl<'d, PIO: Instance> Common<'d, PIO>

Source

pub fn load_program<const SIZE: usize>( &mut self, prog: &Program<SIZE>, ) -> LoadedProgram<'d, PIO>

Load a PIO program. This will automatically relocate the program to an available chunk of free instruction memory if the program origin was not explicitly specified, otherwise it will attempt to load the program only at its origin.

Source

pub fn try_load_program<const SIZE: usize>( &mut self, prog: &Program<SIZE>, ) -> Result<LoadedProgram<'d, PIO>, LoadError>

Load a PIO program. This will automatically relocate the program to an available chunk of free instruction memory if the program origin was not explicitly specified, otherwise it will attempt to load the program only at its origin.

Source

pub unsafe fn free_instr(&mut self, instrs: InstanceMemory<'_, PIO>)

Free instruction memory. This is always possible but unsafe if any state machine is still using this bit of memory.

Source

pub fn set_input_sync_bypass<'a>(&'a mut self, bypass: u32, mask: u32)

Bypass flipflop synchronizer on GPIO inputs.

Source

pub fn get_input_sync_bypass(&self) -> u32

Get bypass configuration.

Source

pub fn make_pio_pin( &mut self, pin: impl Peripheral<P = impl PioPin + 'd> + 'd, ) -> Pin<'d, PIO>

Register a pin for PIO usage. Pins will be released from the PIO block (i.e., have their FUNCSEL reset to NULL) when the Common and all StateMachines for this block have been dropped. Other members of Pio do not keep pin registrations alive.

Source

pub fn apply_sm_batch(&mut self, f: impl FnOnce(&mut PioBatch<'d, PIO>))

Apply changes to all state machines in a batch.

Trait Implementations§

Source§

impl<'d, PIO: Instance> Drop for Common<'d, PIO>

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

§

impl<'d, PIO> Freeze for Common<'d, PIO>

§

impl<'d, PIO> RefUnwindSafe for Common<'d, PIO>
where PIO: RefUnwindSafe,

§

impl<'d, PIO> Send for Common<'d, PIO>
where PIO: Send,

§

impl<'d, PIO> Sync for Common<'d, PIO>
where PIO: Sync,

§

impl<'d, PIO> Unpin for Common<'d, PIO>

§

impl<'d, PIO> !UnwindSafe for Common<'d, PIO>

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> Az for T

Source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
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<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

Source§

fn cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> CheckedAs for T

Source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where Src: CheckedCast<Dst>,

Source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
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<Src, Dst> LosslessTryInto<Dst> for Src
where Dst: LosslessTryFrom<Src>,

Source§

fn lossless_try_into(self) -> Option<Dst>

Performs the conversion.
Source§

impl<Src, Dst> LossyInto<Dst> for Src
where Dst: LossyFrom<Src>,

Source§

fn lossy_into(self) -> Dst

Performs the conversion.
Source§

impl<T> OverflowingAs for T

Source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

Source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> SaturatingAs for T

Source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where Src: SaturatingCast<Dst>,

Source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
Source§

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

Source§

type Error = Infallible

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.
Source§

impl<T> UnwrappedAs for T

Source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

Source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> WrappingAs for T

Source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where Src: WrappingCast<Dst>,

Source§

fn wrapping_cast_from(src: Src) -> Dst

Casts the value.