Dac

Struct Dac 

Source
pub struct Dac<R> {
    pub regs: R,
    pub cfg: DacConfig,
    /* private fields */
}
Expand description

Represents a Digital to Analog Converter (DAC) peripheral.

Fields§

§regs: R§cfg: DacConfig

Implementations§

Source§

impl<R> Dac<R>
where R: Deref<Target = RegisterBlock> + RccPeriph,

Source

pub fn new(regs: R, cfg: DacConfig, vref: f32) -> Self

Initialize a DAC peripheral, including enabling and resetting its RCC peripheral clock. vref is in volts.

Source

pub fn enable(&mut self, channel: DacChannel)

Enable the DAC, for a specific channel.

Source

pub fn disable(&mut self, channel: DacChannel)

Disable the DAC, for a specific channel.

Source

pub fn write(&mut self, channel: DacChannel, val: u16)

Set the DAC output word.

Source

pub unsafe fn write_dma( &mut self, buf: &[u16], channel: DacChannel, dma_channel: DmaChannel, channel_cfg: ChannelCfg, dma_periph: DmaPeriph, ) -> Result<()>

Send values to the DAC using DMA. Each trigger (Eg using a timer; the basic timers Tim6 and Tim7 are designed for DAC triggering) sends one word from the buffer to the DAC’s output. Note that the dma_channel argument is unused on F3 and L4, since it is hard-coded, and can’t be configured using the DMAMUX peripheral. (dma::mux() fn).

Source

pub fn write_voltage(&mut self, channel: DacChannel, volts: f32)

Set the DAC output voltage.

Source

pub fn set_trigger(&mut self, channel: DacChannel, trigger: Trigger)

Select and activate a trigger. See f303 Reference manual, section 16.5.4. Each time a DAC interface detects a rising edge on the selected trigger source (refer to the table below), the last data stored into the DHRx register are transferred into the DORx register. The DORx register is updated three pclk cycles after the trigger occurs.

Source

pub fn trigger_lfsr(&mut self, channel: DacChannel, trigger: Trigger, data: u16)

Independent trigger with single LFSR generation See f303 Reference Manual section 16.5.2

Source

pub fn trigger_triangle( &mut self, channel: DacChannel, trigger: Trigger, data: u16, )

Independent trigger with single triangle generation See f303 Reference Manual section 16.5.2

Source

pub fn enable_interrupt(&mut self, channel: DacChannel)

Enable the DMA Underrun interrupt - the only interrupt available.

Auto Trait Implementations§

§

impl<R> Freeze for Dac<R>
where R: Freeze,

§

impl<R> RefUnwindSafe for Dac<R>
where R: RefUnwindSafe,

§

impl<R> Send for Dac<R>
where R: Send,

§

impl<R> Sync for Dac<R>
where R: Sync,

§

impl<R> Unpin for Dac<R>
where R: Unpin,

§

impl<R> UnwindSafe for Dac<R>
where R: 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 = 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.