45#ifndef G32R4xx_DDL_DAC_H
46#define G32R4xx_DDL_DAC_H
59#if defined(DAC1) || defined(DAC2)
76#define DDL_DAC_ENABLE (DAC_CR_EN)
77#define DDL_DAC_DISABLE (0x00000000UL)
85#define DDL_DAC_TRG1 (DAC_CR_TSEL_0)
86#define DDL_DAC_TRG2 (DAC_CR_TSEL_1)
87#define DDL_DAC_TRG3 (DAC_CR_TSEL_1 | DAC_CR_TSEL_0)
88#define DDL_DAC_TRG4 (DAC_CR_TSEL_2)
89#define DDL_DAC_TRG5 (DAC_CR_TSEL_2 | DAC_CR_TSEL_0)
90#define DDL_DAC_TRG6 (DAC_CR_TSEL_2 | DAC_CR_TSEL_1)
91#define DDL_DAC_TRG7 (DAC_CR_TSEL_2 | DAC_CR_TSEL_1 | DAC_CR_TSEL_0)
93#define DDL_DAC_CHANNEL_TRIG_SOURCE_SOFTWARE (0x00000000UL)
94#define DDL_DAC_CHANNEL_TRIG_SOURCE_TMR1 DDL_DAC_TRG1
95#define DDL_DAC_CHANNEL_TRIG_SOURCE_TMR2 DDL_DAC_TRG2
96#define DDL_DAC_CHANNEL_TRIG_SOURCE_TMR3 DDL_DAC_TRG3
97#define DDL_DAC_CHANNEL_TRIG_SOURCE_TMR4 DDL_DAC_TRG4
98#define DDL_DAC_CHANNEL_TRIG_SOURCE_EINT_LINE0 DDL_DAC_TRG5
99#define DDL_DAC_CHANNEL_TRIG_SOURCE_EINT_LINE2 DDL_DAC_TRG6
100#define DDL_DAC_CHANNEL_TRIG_SOURCE_EINT_LINE11 DDL_DAC_TRG7
108#define DDL_DAC_NONE_MASK_LFSR_0_0 (0x00000000UL)
109#define DDL_DAC_NONE_MASK_LFSR_1_0 (DAC_CR_MAMP_0)
110#define DDL_DAC_NONE_MASK_LFSR_2_0 (DAC_CR_MAMP_1)
111#define DDL_DAC_NONE_MASK_LFSR_3_0 (DAC_CR_MAMP_1 | DAC_CR_MAMP_0)
112#define DDL_DAC_NONE_MASK_LFSR_4_0 (DAC_CR_MAMP_2)
113#define DDL_DAC_NONE_MASK_LFSR_5_0 (DAC_CR_MAMP_2 | DAC_CR_MAMP_0)
114#define DDL_DAC_NONE_MASK_LFSR_6_0 (DAC_CR_MAMP_2 | DAC_CR_MAMP_1)
115#define DDL_DAC_NONE_MASK_LFSR_7_0 (DAC_CR_MAMP_2 | DAC_CR_MAMP_1 | DAC_CR_MAMP_0)
116#define DDL_DAC_NONE_MASK_LFSR_8_0 (DAC_CR_MAMP_3)
117#define DDL_DAC_NONE_MASK_LFSR_9_0 (DAC_CR_MAMP_3 | DAC_CR_MAMP_0)
126#define DDL_DAC_TRI_WAVE_AMPLITUDE_1 (0x00000000UL)
127#define DDL_DAC_TRI_WAVE_AMPLITUDE_3 (DAC_CR_MAMP_0)
128#define DDL_DAC_TRI_WAVE_AMPLITUDE_7 (DAC_CR_MAMP_1)
129#define DDL_DAC_TRI_WAVE_AMPLITUDE_15 (DAC_CR_MAMP_1 | DAC_CR_MAMP_0)
130#define DDL_DAC_TRI_WAVE_AMPLITUDE_31 (DAC_CR_MAMP_2)
131#define DDL_DAC_TRI_WAVE_AMPLITUDE_63 (DAC_CR_MAMP_2 | DAC_CR_MAMP_0)
132#define DDL_DAC_TRI_WAVE_AMPLITUDE_127 (DAC_CR_MAMP_2 | DAC_CR_MAMP_1)
133#define DDL_DAC_TRI_WAVE_AMPLITUDE_255 (DAC_CR_MAMP_2 | DAC_CR_MAMP_1 | DAC_CR_MAMP_0)
134#define DDL_DAC_TRI_WAVE_AMPLITUDE_511 (DAC_CR_MAMP_3)
135#define DDL_DAC_TRI_WAVE_AMPLITUDE_1023 (DAC_CR_MAMP_3 | DAC_CR_MAMP_0)
144#define DDL_DAC_WAVE_GENERATE_NONE (0x00000000UL)
145#define DDL_DAC_WAVE_GENERATE_NOISE (DAC_CR_WAVE_0)
146#define DDL_DAC_WAVE_GENERATE_TRIANGLE (DAC_CR_WAVE_1)
147#define DDL_DAC_WAVE_GENERATE_SAWTOOTH (DAC_CR_WAVE_1 | DAC_CR_WAVE_0)
156#define DDL_DAC_OUTPUT_BUFFER_INTERNAL (0x00000000UL)
157#define DDL_DAC_OUTPUT_BUFFER_EXTERNAL (DAC_CR_EXT_SEL)
166#define DDL_DAC_SAWTOOTH_WAVE_DIRECTION_INCREASING (DAC_STR_STDIR)
167#define DDL_DAC_SAWTOOTH_WAVE_DIRECTION_DECREASING (0x00000000UL)
176#define DDL_DAC_SAWTOOTH_WAVE_RESET_TRIG_SOURCE_SOFTWARE (0x00000000UL)
177#define DDL_DAC_SAWTOOTH_WAVE_RESET_TRIG_SOURCE_TRG1 (DAC_STMODR_STRSTTRIGSEL_0)
178#define DDL_DAC_SAWTOOTH_WAVE_RESET_TRIG_SOURCE_TRG2 (DAC_STMODR_STRSTTRIGSEL_1)
179#define DDL_DAC_SAWTOOTH_WAVE_RESET_TRIG_SOURCE_TRG3 (DAC_STMODR_STRSTTRIGSEL_1 | DAC_STMODR_STRSTTRIGSEL_0)
180#define DDL_DAC_SAWTOOTH_WAVE_RESET_TRIG_SOURCE_TRG4 (DAC_STMODR_STRSTTRIGSEL_2)
181#define DDL_DAC_SAWTOOTH_WAVE_RESET_TRIG_SOURCE_TRG5 (DAC_STMODR_STRSTTRIGSEL_2 | DAC_STMODR_STRSTTRIGSEL_0)
182#define DDL_DAC_SAWTOOTH_WAVE_RESET_TRIG_SOURCE_TRG6 (DAC_STMODR_STRSTTRIGSEL_2 | DAC_STMODR_STRSTTRIGSEL_1)
183#define DDL_DAC_SAWTOOTH_WAVE_RESET_TRIG_SOURCE_TRG7 (DAC_STMODR_STRSTTRIGSEL_2 | DAC_STMODR_STRSTTRIGSEL_1 | DAC_STMODR_STRSTTRIGSEL_0)
192#define DDL_DAC_SAWTOOTH_WAVE_INCREMENT_TRIG_SOURCE_SOFTWARE (0x00000000UL)
193#define DDL_DAC_SAWTOOTH_WAVE_INCREMENT_TRIG_SOURCE_TRG1 (DAC_STMODR_STINCTRIGSEL_0)
194#define DDL_DAC_SAWTOOTH_WAVE_INCREMENT_TRIG_SOURCE_TRG2 (DAC_STMODR_STINCTRIGSEL_1)
195#define DDL_DAC_SAWTOOTH_WAVE_INCREMENT_TRIG_SOURCE_TRG3 (DAC_STMODR_STINCTRIGSEL_1 | DAC_STMODR_STINCTRIGSEL_0)
196#define DDL_DAC_SAWTOOTH_WAVE_INCREMENT_TRIG_SOURCE_TRG4 (DAC_STMODR_STINCTRIGSEL_2)
197#define DDL_DAC_SAWTOOTH_WAVE_INCREMENT_TRIG_SOURCE_TRG5 (DAC_STMODR_STINCTRIGSEL_2 | DAC_STMODR_STINCTRIGSEL_0)
198#define DDL_DAC_SAWTOOTH_WAVE_INCREMENT_TRIG_SOURCE_TRG6 (DAC_STMODR_STINCTRIGSEL_2 | DAC_STMODR_STINCTRIGSEL_1)
199#define DDL_DAC_SAWTOOTH_WAVE_INCREMENT_TRIG_SOURCE_TRG7 (DAC_STMODR_STINCTRIGSEL_2 | DAC_STMODR_STINCTRIGSEL_1 | DAC_STMODR_STINCTRIGSEL_0)
208#define DDL_DAC_DOR_DATA_OVERFLOW_NOT_OCCURRED (0x00000000UL)
209#define DDL_DAC_DOR_DATA_OVERFLOW_OCCURRED (DAC_SR_UP_OW_FLAG)
218#define DDL_DAC_DOR_DATA_UNDERFLOW_NOT_OCCURRED (0x00000000UL)
219#define DDL_DAC_DOR_DATA_UNDERFLOW_OCCURRED (DAC_SR_DOWN_OW_FLAG)
242#define __DAC_PTR_REG_OFFSET(__REG__, __REG_OFFFSET__) \
243 ((uint32_t *)((uint32_t) ((uint32_t)(&(__REG__)) + ((__REG_OFFFSET__) << 2UL))))
250#if defined(USE_FULL_DDL_DRIVER)
334 return (READ_BIT(DACx->CR, DAC_CR_EN) ==
DDL_DAC_ENABLE) ? 1UL : 0UL;
360 MODIFY_REG(DACx->CR, DAC_CR_TSEL, Source);
378 return (uint32_t)READ_BIT(DACx->CR, DAC_CR_TSEL);
399 MODIFY_REG(DACx->CR, DAC_CR_MAMP, mask);
419 return (uint32_t)READ_BIT(DACx->CR, DAC_CR_MAMP);
440 MODIFY_REG(DACx->CR, DAC_CR_MAMP, waveAmp);
460 return (uint32_t)READ_BIT(DACx->CR, DAC_CR_MAMP);
475 MODIFY_REG(DACx->CR, DAC_CR_WAVE, type);
489 return (uint32_t)READ_BIT(DACx->CR, DAC_CR_WAVE);
499 MODIFY_REG(DACx->SWTRGR, DAC_SWTRGR_SWTRIG, DAC_SWTRGR_SWTRIG);
516 MODIFY_REG(DACx->CR, DAC_CR_EN_RDAC, 0x0000000);
526 MODIFY_REG(DACx->CR, DAC_CR_EN_RDAC, DAC_CR_EN_RDAC);
539 MODIFY_REG(DACx->CR, DAC_CR_EXT_SEL, outputBufferSource);
551 return (uint32_t)READ_BIT(DACx->CR, DAC_CR_EXT_SEL);
562 MODIFY_REG(DACx->DHR10R, DAC_DHR10R_DHR10R, data & DAC_DHR10R_DHR10R_Msk);
572 return (uint32_t)READ_BIT(DACx->DHR10R, DAC_DHR10R_DHR10R);
583 MODIFY_REG(DACx->DHR10L, DAC_DHR10L_DHR10L, (data << DAC_DHR10L_DHR10L_Pos) & DAC_DHR10L_DHR10L_Msk);
593 return (uint32_t)(READ_BIT(DACx->DHR10L, DAC_DHR10L_DHR10L) >> DAC_DHR10L_DHR10L_Pos);
603 return (uint32_t)READ_BIT(DACx->DOR, DAC_DOR_DOR);
620 MODIFY_REG(DACx->SWTRGR, DAC_SWTRGR_SWTRIGB, DAC_SWTRGR_SWTRIGB);
631 MODIFY_REG(DACx->STR, DAC_STR_STRSTDATA, value);
641 return (uint32_t)READ_BIT(DACx->STR, DAC_STR_STRSTDATA);
654 MODIFY_REG(DACx->STR, DAC_STR_STDIR, Direction);
666 return (uint32_t)READ_BIT(DACx->STR, DAC_STR_STDIR);
677 MODIFY_REG(DACx->STR, DAC_STR_STINCDATA, (value << DAC_STR_STINCDATA_Pos) & DAC_STR_STINCDATA_Msk);
687 return (uint32_t)(READ_BIT(DACx->STR, DAC_STR_STINCDATA) >> DAC_STR_STINCDATA_Pos);
706 MODIFY_REG(DACx->STMODR, DAC_STMODR_STRSTTRIGSEL, source);
724 return (uint32_t)READ_BIT(DACx->STMODR, DAC_STMODR_STRSTTRIGSEL);
743 MODIFY_REG(DACx->STMODR, DAC_STMODR_STINCTRIGSEL, source);
761 return (uint32_t)READ_BIT(DACx->STMODR, DAC_STMODR_STINCTRIGSEL);
773 return (uint32_t)READ_BIT(DACx->SR, DAC_SR_UP_OW_FLAG);
783 WRITE_REG(DACx->SR, DAC_SR_UP_OW_FLAG);
795 return (uint32_t)READ_BIT(DACx->SR, DAC_SR_DOWN_OW_FLAG);
805 WRITE_REG(DACx->SR, DAC_SR_DOWN_OW_FLAG);
816#if defined(USE_FULL_DDL_DRIVER)
__STATIC_INLINE uint32_t DDL_DAC_GetBufferOutputSource(DAC_TypeDef *DACx)
Get whether the BUFFER output is connected to the PAD.
__STATIC_INLINE void DDL_DAC_Enable(DAC_TypeDef *DACx)
Enable DAC.
__STATIC_INLINE void DDL_DAC_DisableResistorStringOutputToOpAmplifier(DAC_TypeDef *DACx)
Disable DAC resistor string output signal to operational amplifier input.
__STATIC_INLINE void DDL_DAC_EnableResistorStringOutputToOpAmplifier(DAC_TypeDef *DACx)
Enable DAC resistor string output signal to operational amplifier input.
__STATIC_INLINE void DDL_DAC_SetTriangleWaveAmplitude(DAC_TypeDef *DACx, uint32_t waveAmp)
Set the triangle wave amplitude selector.
__STATIC_INLINE uint32_t DDL_DAC_IsEnabled(DAC_TypeDef *DACx)
Get the status of whether DAC is enabled.
__STATIC_INLINE uint32_t DDL_DAC_GetTriangleWaveAmplitude(DAC_TypeDef *DACx)
Get the triangle wave amplitude selector.
__STATIC_INLINE uint32_t DDL_DAC_LFSR_GetNoneMask(DAC_TypeDef *DACx)
Get the masking bits of the LFSR channel.
__STATIC_INLINE void DDL_DAC_SetLeftAlignmentData(DAC_TypeDef *DACx, uint32_t data)
Set left-aligned data register.
__STATIC_INLINE void DDL_DAC_SetChannelTriggerSource(DAC_TypeDef *DACx, uint32_t Source)
Set the trigger source for the channel.
__STATIC_INLINE void DDL_DAC_SetRightAlignmentData(DAC_TypeDef *DACx, uint32_t data)
Set right-aligned data register.
__STATIC_INLINE uint32_t DDL_DAC_GetOutputData(DAC_TypeDef *DACx)
Get data output data register.
__STATIC_INLINE void DDL_DAC_SetWaveGenerateType(DAC_TypeDef *DACx, uint32_t type)
Set the type of waveform generated.
__STATIC_INLINE void DDL_DAC_Disable(DAC_TypeDef *DACx)
Disable DAC.
__STATIC_INLINE uint32_t DDL_DAC_GetRightAlignmentData(DAC_TypeDef *DACx)
Get right-aligned data register.
__STATIC_INLINE void DDL_DAC_EnableSoftwareTrigger(DAC_TypeDef *DACx)
Enable the channel software triggers the generation of waveforms.
__STATIC_INLINE void DDL_DAC_SetBufferOutputSource(DAC_TypeDef *DACx, uint32_t outputBufferSource)
Set whether the BUFFER output is connected to the PAD.
__STATIC_INLINE uint32_t DDL_DAC_GetWaveGenerateType(DAC_TypeDef *DACx)
Get the type of waveform generated.
__STATIC_INLINE void DDL_DAC_LFSR_SetNoneMask(DAC_TypeDef *DACx, uint32_t mask)
Set the masking bits of the LFSR channel.
__STATIC_INLINE uint32_t DDL_DAC_GetChannelTriggerSource(DAC_TypeDef *DACx)
Get the trigger source for the channel.
__STATIC_INLINE uint32_t DDL_DAC_GetLeftAlignmentData(DAC_TypeDef *DACx)
Get left-aligned data register.
void DDL_DAC_StructInit(DDL_DAC_InitTypeDef *DAC_InitStruct)
Set each DDL_DAC_InitTypeDef field to default value.
ErrorStatus DDL_DAC_Init(DAC_TypeDef *DACx, DDL_DAC_InitTypeDef *DAC_InitStruct)
Initialize some features of DAC channel. or one of the supported autogenerated wave.
ErrorStatus DDL_DAC_DeInit(DAC_TypeDef *DACx)
Initialization and de-initialization functions.
__STATIC_INLINE void DDL_DAC_ClearDORDataOverFlowStatus(DAC_TypeDef *DACx)
Clear DOR data overflow status.
__STATIC_INLINE void DDL_DAC_ClearDORDataUnderFlowStatus(DAC_TypeDef *DACx)
Clear DOR data underflow status.
__STATIC_INLINE void DDL_DAC_SetSawtoothDirection(DAC_TypeDef *DACx, uint32_t Direction)
Set DAC channel sawtooth wave direction.
__STATIC_INLINE uint32_t DDL_DAC_GetSawtoothIncrementValue(DAC_TypeDef *DACx)
Get the increment value of the DAC channel sawtooth wave.
__STATIC_INLINE void DDL_DAC_SetSawtoothIncrementTriggerSource(DAC_TypeDef *DACx, uint32_t source)
Set the sawtooth wave increment trigger source.
__STATIC_INLINE void DDL_DAC_SetSawtoothIncrementValue(DAC_TypeDef *DACx, uint32_t value)
Set the increment value of the DAC channel sawtooth wave.
__STATIC_INLINE uint32_t DDL_DAC_GetSawtoothResetTriggerSource(DAC_TypeDef *DACx)
Get the sawtooth wave reset trigger source.
__STATIC_INLINE void DDL_DAC_SetSawtoothResetTriggerSource(DAC_TypeDef *DACx, uint32_t source)
Set the sawtooth wave reset trigger source.
__STATIC_INLINE void DDL_DAC_EnableSawtoothSoftwareTriggerB(DAC_TypeDef *DACx)
Enable channel software trigger to generate sawtooth wave incrementally.
__STATIC_INLINE uint32_t DDL_DAC_GetSawtoothResetValue(DAC_TypeDef *DACx)
Get channel sawtooth reset value.
__STATIC_INLINE void DDL_DAC_SetSawtoothResetValue(DAC_TypeDef *DACx, uint32_t value)
Set channel sawtooth reset value.
__STATIC_INLINE uint32_t DDL_DAC_GetSawtoothDirection(DAC_TypeDef *DACx)
Get DAC channel sawtooth wave direction.
__STATIC_INLINE uint32_t DDL_DAC_GetSawtoothIncrementTriggerSource(DAC_TypeDef *DACx)
Get the sawtooth wave increment trigger source.
__STATIC_INLINE uint32_t DDL_DAC_GetDORDataUnderFlowStatus(DAC_TypeDef *DACx)
Get DOR data underflow status.
__STATIC_INLINE uint32_t DDL_DAC_GetDORDataOverFlowStatus(DAC_TypeDef *DACx)
Get DOR data overflow status.
Structure definition of some features of DAC instance.
uint32_t WaveAutoGeneration
uint32_t WaveAutoGenerationConfig