embassy-rp

Crates

git

Versions

rp235xb

Flavors

Skip to main content

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: Peri<'d, ADC>, _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: &mut Channel<'_, Async>, ) -> 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: &mut Channel<'_, Async>, )

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: &mut Channel<'_, Async>, ) -> 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: &mut Channel<'_, Async>, )

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: Peri<'d, ADC>, _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
Source§

fn pin_drop(self: Pin<&mut Self>)

🔬This is a nightly-only experimental API. (pin_ergonomics)
Execute the destructor for this type, but different to Drop::drop, it requires self to be pinned. Read more

Auto Trait Implementations§

§

impl<'d, M> Freeze for Adc<'d, M>
where PhantomData<(&'d ADC, M)>: Freeze,

§

impl<'d, M> RefUnwindSafe for Adc<'d, M>
where PhantomData<(&'d ADC, M)>: RefUnwindSafe,

§

impl<'d, M> Send for Adc<'d, M>
where PhantomData<(&'d ADC, M)>: Send,

§

impl<'d, M> Sync for Adc<'d, M>
where PhantomData<(&'d ADC, M)>: Sync,

§

impl<'d, M> Unpin for Adc<'d, M>
where PhantomData<(&'d ADC, M)>: Unpin,

§

impl<'d, M> UnsafeUnpin for Adc<'d, M>
where PhantomData<(&'d ADC, M)>: UnsafeUnpin,

§

impl<'d, M> UnwindSafe for Adc<'d, M>
where PhantomData<(&'d ADC, 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> 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.