Struct esp_idf_sys::dac_continuous_config_t

source ·
#[repr(C)]
pub struct dac_continuous_config_t { pub chan_mask: dac_channel_mask_t, pub desc_num: u32, pub buf_size: usize, pub freq_hz: u32, pub offset: i8, pub clk_src: dac_continuous_digi_clk_src_t, pub chan_mode: dac_continuous_channel_mode_t, }
Expand description

@brief DAC continuous channels’ configurations

Fields§

§chan_mask: dac_channel_mask_t

< DAC channels’ mask for selecting which channels are used

§desc_num: u32

< The number of DMA descriptor, at least 2 descriptors are required The number of descriptors is directly proportional to the max data buffer size while converting in cyclic output but only need to ensure it is greater than ‘1’ in acyclic output Typically, suggest to set the number bigger than 5, in case the DMA stopped while sending a short buffer

§buf_size: usize

< The DMA buffer size, should be within 32~4092 bytes. Each DMA buffer will be attached to a DMA descriptor, i.e. the number of DMA buffer will be equal to the DMA descriptor number The DMA buffer size is not allowed to be greater than 4092 bytes The total DMA buffer size equal to desc_num * buf_size Typically, suggest to set the size to the multiple of 4

§freq_hz: u32

< The frequency of DAC conversion in continuous mode, unit: Hz The supported range is related to the target and the clock source. For the clock DAC_DIGI_CLK_SRC_DEFAULT: the range is 19.6 KHz to several MHz on ESP32 and 77 Hz to several MHz on ESP32-S2. For the clock DAC_DIGI_CLK_SRC_APLL: the range is 648 Hz to several MHz on ESP32 and 6 Hz to several MHz on ESP32-S2. Typically not suggest to set the frequency higher than 2 MHz, otherwise the severe distortion will appear

§offset: i8

< The offset of the DAC digital data. Range -128~127

§clk_src: dac_continuous_digi_clk_src_t

< The clock source of digital controller, which can affect the range of supported frequency Currently DAC_DIGI_CLK_SRC_DEFAULT and DAC_DIGI_CLK_SRC_APLL are available

§chan_mode: dac_continuous_channel_mode_t

< The channel mode of continuous mode, only take effect when multiple channels enabled, depends converting the buffer alternately or simultaneously

Trait Implementations§

source§

impl Clone for dac_continuous_config_t

source§

fn clone(&self) -> dac_continuous_config_t

Returns a copy 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 dac_continuous_config_t

source§

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

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

impl Default for dac_continuous_config_t

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl Copy for dac_continuous_config_t

Auto Trait Implementations§

§

impl Freeze for dac_continuous_config_t

§

impl RefUnwindSafe for dac_continuous_config_t

§

impl Send for dac_continuous_config_t

§

impl Sync for dac_continuous_config_t

§

impl Unpin for dac_continuous_config_t

§

impl UnwindSafe for dac_continuous_config_t

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: Copy,

§

unsafe fn clone_to_uninit(&self, dst: *mut T)

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

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

§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. 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.

§

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

§

type Owned = T

The resulting type after obtaining ownership.
§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

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.