embassy-rp

Crates

git

Versions

rp2040

Flavors

embassy_rp::adc

Struct Adc

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

ADC driver.

Implementations§

Source§

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

Source

pub fn blocking_read(&mut self, ch: &mut Channel<'_>) -> Result<u16, Error>

Sample a value from a channel in blocking mode.

Source§

impl<'d> Adc<'d, Async>

Source

pub fn new( _inner: impl Peripheral<P = ADC> + 'd, _irq: impl Binding<ADC_IRQ_FIFO, InterruptHandler>, _config: Config, ) -> Self

Create ADC driver in async mode.

Source

pub async fn read(&mut self, ch: &mut Channel<'_>) -> Result<u16, Error>

Sample a value from a channel until completed.

Source

pub async fn read_many_multichannel<S: AdcSample>( &mut self, ch: &mut [Channel<'_>], buf: &mut [S], div: u16, dma: impl Peripheral<P = impl Channel>, ) -> Result<(), Error>

Sample multiple values from multiple channels using DMA. Samples are stored in an interleaved fashion inside the buffer. div is the integer part of the clock divider and can be calculated with floor(48MHz / sample_rate * num_channels - 1) Any div value of less than 96 will have the same effect as setting it to 0

Source

pub async fn read_many_multichannel_raw( &mut self, ch: &mut [Channel<'_>], buf: &mut [Sample], div: u16, dma: impl Peripheral<P = impl Channel>, )

Sample multiple values from multiple channels using DMA, with errors inlined in samples. Samples are stored in an interleaved fashion inside the buffer. div is the integer part of the clock divider and can be calculated with floor(48MHz / sample_rate * num_channels - 1) Any div value of less than 96 will have the same effect as setting it to 0

Source

pub async fn read_many<S: AdcSample>( &mut self, ch: &mut Channel<'_>, buf: &mut [S], div: u16, dma: impl Peripheral<P = impl Channel>, ) -> Result<(), Error>

Sample multiple values from a channel using DMA. div is the integer part of the clock divider and can be calculated with floor(48MHz / sample_rate - 1) Any div value of less than 96 will have the same effect as setting it to 0

Source

pub async fn read_many_raw( &mut self, ch: &mut Channel<'_>, buf: &mut [Sample], div: u16, dma: impl Peripheral<P = impl Channel>, )

Sample multiple values from a channel using DMA, with errors inlined in samples. div is the integer part of the clock divider and can be calculated with floor(48MHz / sample_rate - 1) Any div value of less than 96 will have the same effect as setting it to 0

Source§

impl<'d> Adc<'d, Blocking>

Source

pub fn new_blocking( _inner: impl Peripheral<P = ADC> + 'd, _config: Config, ) -> Self

Create ADC driver in blocking mode.

Trait Implementations§

Source§

impl<'d, M: Mode> Drop for Adc<'d, M>

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

§

impl<'d, M> Freeze for Adc<'d, M>

§

impl<'d, M> RefUnwindSafe for Adc<'d, M>
where M: RefUnwindSafe,

§

impl<'d, M> Send for Adc<'d, M>
where M: Send,

§

impl<'d, M> Sync for Adc<'d, M>
where M: Sync,

§

impl<'d, M> Unpin for Adc<'d, M>
where M: Unpin,

§

impl<'d, M> UnwindSafe for Adc<'d, M>
where M: UnwindSafe,

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.