M4521_BSP V3.02.000
The Board Support Package for M4521
eadc.c
Go to the documentation of this file.
1/**************************************************************************/
12#include "M4521.h"
13
37void EADC_Open(EADC_T *eadc, uint32_t u32InputMode)
38{
39 eadc->CTL &= (~EADC_CTL_DIFFEN_Msk);
40
41 eadc->CTL |= (u32InputMode | EADC_CTL_ADCEN_Msk);
42}
43
50void EADC_Close(EADC_T *eadc)
51{
52 eadc->CTL &= ~EADC_CTL_ADCEN_Msk;
53}
54
88 uint32_t u32ModuleNum, \
89 uint32_t u32TriggerSrc, \
90 uint32_t u32Channel)
91{
93 eadc->SCTL[u32ModuleNum] |= (u32TriggerSrc | u32Channel);
94}
95
96
112 uint32_t u32ModuleNum, \
113 uint32_t u32TriggerDelayTime, \
114 uint32_t u32DelayClockDivider)
115{
116 eadc->SCTL[u32ModuleNum] &= ~(EADC_SCTL_TRGDLYDIV_Msk | EADC_SCTL_TRGDLYCNT_Msk);
117 eadc->SCTL[u32ModuleNum] |= ((u32TriggerDelayTime << EADC_SCTL_TRGDLYCNT_Pos) | u32DelayClockDivider);
118}
119
129void EADC_SetInternalSampleTime(EADC_T *eadc, uint32_t u32SampleTime)
130{
131 eadc->CTL &= ~EADC_CTL_SMPTSEL_Msk;
132
133 eadc->CTL |= (u32SampleTime - 1) << EADC_CTL_SMPTSEL_Pos;
134
135}
136
146void EADC_SetExtendSampleTime(EADC_T *eadc, uint32_t u32ModuleNum, uint32_t u32ExtendSampleTime)
147{
148 eadc->SCTL[u32ModuleNum] &= ~EADC_SCTL_EXTSMPT_Msk;
149
150 eadc->SCTL[u32ModuleNum] |= (u32ExtendSampleTime << EADC_SCTL_EXTSMPT_Pos);
151
152}
153 /* end of group EADC_EXPORTED_FUNCTIONS */
155 /* end of group EADC_Driver */
157 /* end of group Standard_Driver */
159
160/*** (C) COPYRIGHT 2022 Nuvoton Technology Corp. ***/
161
void EADC_SetInternalSampleTime(EADC_T *eadc, uint32_t u32SampleTime)
Set ADC internal sample time.
Definition: eadc.c:129
void EADC_Close(EADC_T *eadc)
Disable EADC_module.
Definition: eadc.c:50
void EADC_SetExtendSampleTime(EADC_T *eadc, uint32_t u32ModuleNum, uint32_t u32ExtendSampleTime)
Set ADC extend sample time.
Definition: eadc.c:146
void EADC_SetTriggerDelayTime(EADC_T *eadc, uint32_t u32ModuleNum, uint32_t u32TriggerDelayTime, uint32_t u32DelayClockDivider)
Set trigger delay time.
Definition: eadc.c:111
void EADC_ConfigSampleModule(EADC_T *eadc, uint32_t u32ModuleNum, uint32_t u32TriggerSource, uint32_t u32Channel)
Configure the sample control logic module.
Definition: eadc.c:87
void EADC_Open(EADC_T *eadc, uint32_t u32InputMode)
This function make EADC_module be ready to convert.
Definition: eadc.c:37
__IO uint32_t CTL
Definition: M4521.h:727
__IO uint32_t SCTL[19]
Definition: M4521.h:732
#define EADC_CTL_SMPTSEL_Pos
Definition: M4521.h:789
#define EADC_SCTL_TRGSEL_Msk
Definition: M4521.h:817
#define EADC_SCTL_TRGDLYCNT_Pos
Definition: M4521.h:813
#define EADC_SCTL_CHSEL_Msk
Definition: M4521.h:802
#define EADC_SCTL_EXTSMPT_Pos
Definition: M4521.h:825
#define EADC_SCTL_TRGDLYDIV_Msk
Definition: M4521.h:811
#define EADC_CTL_ADCEN_Msk
Definition: M4521.h:763
#define EADC_SCTL_EXTFEN_Msk
Definition: M4521.h:808
#define EADC_SCTL_TRGDLYCNT_Msk
Definition: M4521.h:814
#define EADC_SCTL_EXTREN_Msk
Definition: M4521.h:805
Definition: M4521.h:177