EFM32 Leopard Gecko Software Documentation
efm32lg-doc-4.2.1
|
Digital to Analog Coversion (DAC) Peripheral API
. More...
Data Structures | |
struct | DAC_Init_TypeDef |
struct | DAC_InitChannel_TypeDef |
Macros | |
#define | DAC_INIT_DEFAULT |
#define | DAC_INITCHANNEL_DEFAULT |
Enumerations | |
enum | DAC_ConvMode_TypeDef { dacConvModeContinuous = _DAC_CTRL_CONVMODE_CONTINUOUS, dacConvModeSampleHold = _DAC_CTRL_CONVMODE_SAMPLEHOLD, dacConvModeSampleOff = _DAC_CTRL_CONVMODE_SAMPLEOFF } |
enum | DAC_Output_TypeDef { dacOutputDisable = _DAC_CTRL_OUTMODE_DISABLE, dacOutputPin = _DAC_CTRL_OUTMODE_PIN, dacOutputADC = _DAC_CTRL_OUTMODE_ADC, dacOutputPinADC = _DAC_CTRL_OUTMODE_PINADC } |
enum | DAC_PRSSEL_TypeDef { dacPRSSELCh0 = _DAC_CH0CTRL_PRSSEL_PRSCH0, dacPRSSELCh1 = _DAC_CH0CTRL_PRSSEL_PRSCH1, dacPRSSELCh2 = _DAC_CH0CTRL_PRSSEL_PRSCH2, dacPRSSELCh3 = _DAC_CH0CTRL_PRSSEL_PRSCH3, dacPRSSELCh4 = _DAC_CH0CTRL_PRSSEL_PRSCH4, dacPRSSELCh5 = _DAC_CH0CTRL_PRSSEL_PRSCH5, dacPRSSELCh6 = _DAC_CH0CTRL_PRSSEL_PRSCH6, dacPRSSELCh7 = _DAC_CH0CTRL_PRSSEL_PRSCH7, dacPRSSELCh8 = _DAC_CH0CTRL_PRSSEL_PRSCH8, dacPRSSELCh9 = _DAC_CH0CTRL_PRSSEL_PRSCH9, dacPRSSELCh10 = _DAC_CH0CTRL_PRSSEL_PRSCH10, dacPRSSELCh11 = _DAC_CH0CTRL_PRSSEL_PRSCH11 } |
enum | DAC_Ref_TypeDef { dacRef1V25 = _DAC_CTRL_REFSEL_1V25, dacRef2V5 = _DAC_CTRL_REFSEL_2V5, dacRefVDD = _DAC_CTRL_REFSEL_VDD } |
enum | DAC_Refresh_TypeDef { dacRefresh8 = _DAC_CTRL_REFRSEL_8CYCLES, dacRefresh16 = _DAC_CTRL_REFRSEL_16CYCLES, dacRefresh32 = _DAC_CTRL_REFRSEL_32CYCLES, dacRefresh64 = _DAC_CTRL_REFRSEL_64CYCLES } |
Functions | |
void | DAC_Enable (DAC_TypeDef *dac, unsigned int ch, bool enable) |
Enable/disable DAC channel. More... | |
void | DAC_Init (DAC_TypeDef *dac, const DAC_Init_TypeDef *init) |
Initialize DAC. More... | |
void | DAC_InitChannel (DAC_TypeDef *dac, const DAC_InitChannel_TypeDef *init, unsigned int ch) |
Initialize DAC channel. More... | |
void | DAC_ChannelOutputSet (DAC_TypeDef *dac, unsigned int channel, uint32_t value) |
Set the output signal of a DAC channel to a given value. More... | |
__STATIC_INLINE void | DAC_Channel0OutputSet (DAC_TypeDef *dac, uint32_t value) |
Set the output signal of DAC channel 0 to a given value. More... | |
__STATIC_INLINE void | DAC_Channel1OutputSet (DAC_TypeDef *dac, uint32_t value) |
Set the output signal of DAC channel 1 to a given value. More... | |
__STATIC_INLINE void | DAC_IntClear (DAC_TypeDef *dac, uint32_t flags) |
Clear one or more pending DAC interrupts. More... | |
__STATIC_INLINE void | DAC_IntDisable (DAC_TypeDef *dac, uint32_t flags) |
Disable one or more DAC interrupts. More... | |
__STATIC_INLINE void | DAC_IntEnable (DAC_TypeDef *dac, uint32_t flags) |
Enable one or more DAC interrupts. More... | |
__STATIC_INLINE uint32_t | DAC_IntGet (DAC_TypeDef *dac) |
Get pending DAC interrupt flags. More... | |
__STATIC_INLINE uint32_t | DAC_IntGetEnabled (DAC_TypeDef *dac) |
Get enabled and pending DAC interrupt flags. Useful for handling more interrupt sources in the same interrupt handler. More... | |
__STATIC_INLINE void | DAC_IntSet (DAC_TypeDef *dac, uint32_t flags) |
Set one or more pending DAC interrupts from SW. More... | |
uint8_t | DAC_PrescaleCalc (uint32_t dacFreq, uint32_t hfperFreq) |
Calculate prescaler value used to determine DAC clock. More... | |
void | DAC_Reset (DAC_TypeDef *dac) |
Reset DAC to same state as after a HW reset. More... | |
#define DAC_INIT_DEFAULT |
Default config for DAC init structure.
#define DAC_INITCHANNEL_DEFAULT |
Default config for DAC channel init structure.
enum DAC_ConvMode_TypeDef |
enum DAC_Output_TypeDef |
enum DAC_PRSSEL_TypeDef |
Peripheral Reflex System signal used to trigger single sample.
enum DAC_Ref_TypeDef |
enum DAC_Refresh_TypeDef |
void DAC_Enable | ( | DAC_TypeDef * | dac, |
unsigned int | ch, | ||
bool | enable | ||
) |
[in] | dac | Pointer to DAC peripheral register block. |
[in] | ch | Channel to enable/disable. |
[in] | enable | true to enable DAC channel, false to disable. |
Definition at line 81 of file em_dac.c.
References _DAC_CH0CTRL_EN_SHIFT, BUS_RegBitWrite(), DAC_TypeDef::CH0CTRL, and DAC_TypeDef::CH1CTRL.
void DAC_Init | ( | DAC_TypeDef * | dac, |
const DAC_Init_TypeDef * | init | ||
) |
Initializes common parts for both channels. In addition, channel control configuration must be done, please refer to DAC_InitChannel().
[in] | dac | Pointer to DAC peripheral register block. |
[in] | init | Pointer to DAC initialization structure. |
Definition at line 118 of file em_dac.c.
References _DAC_CH0CTRL_EN_SHIFT, _DAC_CTRL_CONVMODE_SHIFT, _DAC_CTRL_OUTMODE_SHIFT, _DAC_CTRL_PRESC_MASK, _DAC_CTRL_PRESC_SHIFT, _DAC_CTRL_REFRSEL_SHIFT, _DAC_CTRL_REFSEL_SHIFT, BUS_RegBitWrite(), DAC_TypeDef::CAL, DAC_TypeDef::CH0CTRL, DAC_Init_TypeDef::ch0ResetPre, DAC_TypeDef::CH1CTRL, DAC_Init_TypeDef::convMode, DAC_TypeDef::CTRL, DAC_CTRL_CH0PRESCRST, DAC_CTRL_DIFF, DAC_CTRL_OUTENPRS, DAC_CTRL_SINEMODE, dacRef2V5, dacRefVDD, DEVINFO, DAC_Init_TypeDef::diff, DAC_Init_TypeDef::outEnablePRS, DAC_Init_TypeDef::outMode, DAC_Init_TypeDef::prescale, DAC_Init_TypeDef::reference, DAC_Init_TypeDef::refresh, and DAC_Init_TypeDef::sineEnable.
void DAC_InitChannel | ( | DAC_TypeDef * | dac, |
const DAC_InitChannel_TypeDef * | init, | ||
unsigned int | ch | ||
) |
[in] | dac | Pointer to DAC peripheral register block. |
[in] | init | Pointer to DAC initialization structure. |
[in] | ch | Channel number to initialize. |
Definition at line 188 of file em_dac.c.
References _DAC_CH0CTRL_PRSSEL_SHIFT, DAC_TypeDef::CH0CTRL, DAC_TypeDef::CH1CTRL, DAC_CH0CTRL_EN, DAC_CH0CTRL_PRSEN, DAC_CH0CTRL_REFREN, DAC_InitChannel_TypeDef::enable, DAC_InitChannel_TypeDef::prsEnable, DAC_InitChannel_TypeDef::prsSel, and DAC_InitChannel_TypeDef::refreshEnable.
void DAC_ChannelOutputSet | ( | DAC_TypeDef * | dac, |
unsigned int | channel, | ||
uint32_t | value | ||
) |
This function sets the output signal of a DAC channel by writing value
to the corresponding CHnDATA register.
[in] | dac | Pointer to DAC peripheral register block. |
[in] | channel | Channel number to set output of. |
[in] | value | Value to write to the channel output register CHnDATA. |
Definition at line 242 of file em_dac.c.
References DAC_Channel0OutputSet(), and DAC_Channel1OutputSet().
__STATIC_INLINE void DAC_Channel0OutputSet | ( | DAC_TypeDef * | dac, |
uint32_t | value | ||
) |
This function sets the output signal of DAC channel 0 by writing value
to the CH0DATA register.
[in] | dac | Pointer to DAC peripheral register block. |
[in] | value | Value to write to the channel 0 output register CH0DATA. |
Definition at line 259 of file em_dac.h.
References _DAC_CH0DATA_MASK, and DAC_TypeDef::CH0DATA.
Referenced by DAC_ChannelOutputSet().
__STATIC_INLINE void DAC_Channel1OutputSet | ( | DAC_TypeDef * | dac, |
uint32_t | value | ||
) |
This function sets the output signal of DAC channel 1 by writing value
to the CH1DATA register.
[in] | dac | Pointer to DAC peripheral register block. |
[in] | value | Value to write to the channel 1 output register CH1DATA. |
Definition at line 281 of file em_dac.h.
References _DAC_CH1DATA_MASK, and DAC_TypeDef::CH1DATA.
Referenced by DAC_ChannelOutputSet().
__STATIC_INLINE void DAC_IntClear | ( | DAC_TypeDef * | dac, |
uint32_t | flags | ||
) |
[in] | dac | Pointer to DAC peripheral register block. |
[in] | flags | Pending DAC interrupt source to clear. Use a bitwise logic OR combination of valid interrupt flags for the DAC module (DAC_IF_nnn). |
Definition at line 300 of file em_dac.h.
References DAC_TypeDef::IFC.
__STATIC_INLINE void DAC_IntDisable | ( | DAC_TypeDef * | dac, |
uint32_t | flags | ||
) |
[in] | dac | Pointer to DAC peripheral register block. |
[in] | flags | DAC interrupt sources to disable. Use a bitwise logic OR combination of valid interrupt flags for the DAC module (DAC_IF_nnn). |
Definition at line 317 of file em_dac.h.
References DAC_TypeDef::IEN.
__STATIC_INLINE void DAC_IntEnable | ( | DAC_TypeDef * | dac, |
uint32_t | flags | ||
) |
[in] | dac | Pointer to DAC peripheral register block. |
[in] | flags | DAC interrupt sources to enable. Use a bitwise logic OR combination of valid interrupt flags for the DAC module (DAC_IF_nnn). |
Definition at line 339 of file em_dac.h.
References DAC_TypeDef::IEN.
__STATIC_INLINE uint32_t DAC_IntGet | ( | DAC_TypeDef * | dac | ) |
[in] | dac | Pointer to DAC peripheral register block. |
Definition at line 359 of file em_dac.h.
References DAC_TypeDef::IF.
__STATIC_INLINE uint32_t DAC_IntGetEnabled | ( | DAC_TypeDef * | dac | ) |
[in] | dac | Pointer to DAC peripheral register block. |
Definition at line 384 of file em_dac.h.
References DAC_TypeDef::IEN, and DAC_TypeDef::IF.
__STATIC_INLINE void DAC_IntSet | ( | DAC_TypeDef * | dac, |
uint32_t | flags | ||
) |
[in] | dac | Pointer to DAC peripheral register block. |
[in] | flags | DAC interrupt sources to set to pending. Use a bitwise logic OR combination of valid interrupt flags for the DAC module (DAC_IF_nnn). |
Definition at line 408 of file em_dac.h.
References DAC_TypeDef::IFS.
uint8_t DAC_PrescaleCalc | ( | uint32_t | dacFreq, |
uint32_t | hfperFreq | ||
) |
The DAC clock is given by: HFPERCLK / (prescale ^ 2). If the requested DAC frequency is low and the max prescaler value can not adjust the actual DAC frequency lower than the requested DAC frequency, then the max prescaler value is returned, resulting in a higher DAC frequency than requested.
[in] | dacFreq | DAC frequency wanted. The frequency will automatically be adjusted to be below max allowed DAC clock. |
[in] | hfperFreq | Frequency in Hz of reference HFPER clock. Set to 0 to use currently defined HFPER clock setting. |
dacFreq
. Definition at line 282 of file em_dac.c.
References _DAC_CTRL_PRESC_MASK, _DAC_CTRL_PRESC_SHIFT, CMU_ClockFreqGet(), and cmuClock_HFPER.
void DAC_Reset | ( | DAC_TypeDef * | dac | ) |
[in] | dac | Pointer to ADC peripheral register block. |
Definition at line 325 of file em_dac.c.
References _DAC_BIASPROG_RESETVALUE, _DAC_CH0CTRL_RESETVALUE, _DAC_CH1CTRL_RESETVALUE, _DAC_CTRL_RESETVALUE, _DAC_IEN_RESETVALUE, _DAC_IFC_MASK, DAC_TypeDef::BIASPROG, DAC_TypeDef::CAL, DAC_TypeDef::CH0CTRL, DAC_TypeDef::CH1CTRL, DAC_TypeDef::CTRL, DEVINFO, DAC_TypeDef::IEN, and DAC_TypeDef::IFC.