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
impl Clone for dac_continuous_config_t
source§fn clone(&self) -> dac_continuous_config_t
fn clone(&self) -> dac_continuous_config_t
1.0.0§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for dac_continuous_config_t
impl Debug for dac_continuous_config_t
source§impl Default for dac_continuous_config_t
impl Default for dac_continuous_config_t
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 Twhere
T: 'static + ?Sized,
impl<T> Any for Twhere
T: 'static + ?Sized,
§impl<T> Borrow<T> for Twhere
T: ?Sized,
impl<T> Borrow<T> for Twhere
T: ?Sized,
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> CloneToUninit for Twhere
T: Copy,
impl<T> CloneToUninit for Twhere
T: Copy,
§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)