Channels

Struct Channels 

Source
pub struct Channels { /* private fields */ }
Expand description

I2S channels configuration

Implementations§

Source§

impl Channels

Source

pub const STEREO: Channels

Two channels will use different data

Source

pub const MONO: Channels

Two channels will use the same data

Source

pub const LEFT: Channels

Two channels. Left(first) channel will contain data. Right(second) channel will contain zeros.

Source

pub const RIGHT: Channels

Two channels. Right(second) channel will contain data. Left(first) channel will contain zeros.

Source

pub const fn new(count: u8, mask: u16, fill: Option<u32>) -> Self

Creates arbitrary configuration for I2S channels.

  • count the total number of channels. Must be at least 1 and no more than 16.
  • mask determines which channels will be active, with the least significant bit representing first channel. Setting the bit at the nth position means nth channel is active. Inactive channels do not consume or write data in the DMA buffer.
  • fill determines the behavior of inactive channels. Some(n) will make all inactive channel send out specified value, truncated to the channel width. None will make disabled channels repeat the data from the last active channel. This field is ignored in the receiver unit.
§Example

The following example prepares configuration for 6 channels. Only 1st and 4th channels are active. Channels 2-3 will use the same data as the 1st, and channels 5-6 will use the data from the 4th.

use esp_hal::i2s::master::Channels;

let channels = Channels::new(6, 0b_001_001, None);

Trait Implementations§

Source§

impl Clone for Channels

Available on crate feature unstable only.
Source§

fn clone(&self) -> Channels

Returns a duplicate of the value. Read more
1.0.0§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Channels

Available on crate feature unstable only.
Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Hash for Channels

Available on crate feature unstable only.
Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given [Hasher]. Read more
1.3.0§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given [Hasher]. Read more
Source§

impl PartialEq for Channels

Available on crate feature unstable only.
Source§

fn eq(&self, other: &Channels) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for Channels

Available on crate feature unstable only.
Source§

impl Eq for Channels

Available on crate feature unstable only.
Source§

impl StructuralPartialEq for Channels

Available on crate feature unstable only.

Auto Trait Implementations§

§

impl Freeze for Channels

§

impl RefUnwindSafe for Channels

§

impl Send for Channels

§

impl Sync for Channels

§

impl Unpin for Channels

§

impl UnwindSafe for Channels

Blanket Implementations§

§

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

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

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

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

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

§

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

Mutably borrows from an owned value. Read more
§

impl<T> CloneToUninit for T
where T: Clone,

§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
§

impl<T> From<T> for T

§

fn from(t: T) -> T

Returns the argument unchanged.

§

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

§

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

Source§

type Output = T

Should always be Self
§

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

§

type Error = Infallible

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

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

Performs the conversion.
§

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

§

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

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

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

Performs the conversion.