M480 BSP V3.05.005
The Board Support Package for M480 Series
eadc.c
Go to the documentation of this file.
1/**************************************************************************/
9#include "NuMicro.h"
10
19int32_t g_EADC_i32ErrCode = 0;
36void EADC_Open(EADC_T *eadc, uint32_t u32InputMode)
37{
38 uint32_t u32Delay = SystemCoreClock; /* 1 second */
39
41
42 eadc->CTL &= (~EADC_CTL_DIFFEN_Msk);
43
44 eadc->CTL |= (u32InputMode | EADC_CTL_ADCEN_Msk);
45 while (!(eadc->PWRM & EADC_PWRM_PWUPRDY_Msk))
46 {
47 if (--u32Delay == 0)
48 {
50 break;
51 }
52 }
53}
54
61void EADC_Close(EADC_T *eadc)
62{
63 eadc->CTL &= ~EADC_CTL_ADCEN_Msk;
64}
65
101 uint32_t u32ModuleNum, \
102 uint32_t u32TriggerSrc, \
103 uint32_t u32Channel)
104{
106 eadc->SCTL[u32ModuleNum] |= (u32TriggerSrc | u32Channel);
107}
108
109
125 uint32_t u32ModuleNum, \
126 uint32_t u32TriggerDelayTime, \
127 uint32_t u32DelayClockDivider)
128{
129 eadc->SCTL[u32ModuleNum] &= ~(EADC_SCTL_TRGDLYDIV_Msk | EADC_SCTL_TRGDLYCNT_Msk);
130 eadc->SCTL[u32ModuleNum] |= ((u32TriggerDelayTime << EADC_SCTL_TRGDLYCNT_Pos) | u32DelayClockDivider);
131}
132
142void EADC_SetExtendSampleTime(EADC_T *eadc, uint32_t u32ModuleNum, uint32_t u32ExtendSampleTime)
143{
144 eadc->SCTL[u32ModuleNum] &= ~EADC_SCTL_EXTSMPT_Msk;
145
146 eadc->SCTL[u32ModuleNum] |= (u32ExtendSampleTime << EADC_SCTL_EXTSMPT_Pos);
147
148}
149 /* end of group EADC_EXPORTED_FUNCTIONS */
151 /* end of group EADC_Driver */
153 /* end of group Standard_Driver */
155
156/*** (C) COPYRIGHT 2016 Nuvoton Technology Corp. ***/
NuMicro peripheral access layer header file.
int32_t g_EADC_i32ErrCode
Definition: eadc.c:19
#define EADC_TIMEOUT_ERR
Definition: eadc.h:91
void EADC_Close(EADC_T *eadc)
Disable EADC_module.
Definition: eadc.c:61
void EADC_SetExtendSampleTime(EADC_T *eadc, uint32_t u32ModuleNum, uint32_t u32ExtendSampleTime)
Set ADC extend sample time.
Definition: eadc.c:142
void EADC_SetTriggerDelayTime(EADC_T *eadc, uint32_t u32ModuleNum, uint32_t u32TriggerDelayTime, uint32_t u32DelayClockDivider)
Set trigger delay time.
Definition: eadc.c:124
void EADC_ConfigSampleModule(EADC_T *eadc, uint32_t u32ModuleNum, uint32_t u32TriggerSrc, uint32_t u32Channel)
Configure the sample control logic module.
Definition: eadc.c:100
void EADC_Open(EADC_T *eadc, uint32_t u32InputMode)
This function make EADC_module be ready to convert.
Definition: eadc.c:36
#define EADC_SCTL_TRGSEL_Msk
Definition: eadc_reg.h:1470
#define EADC_SCTL_TRGDLYCNT_Pos
Definition: eadc_reg.h:1466
#define EADC_SCTL_CHSEL_Msk
Definition: eadc_reg.h:1455
#define EADC_SCTL_EXTSMPT_Pos
Definition: eadc_reg.h:1478
#define EADC_SCTL_TRGDLYDIV_Msk
Definition: eadc_reg.h:1464
#define EADC_CTL_ADCEN_Msk
Definition: eadc_reg.h:1416
#define EADC_SCTL_EXTFEN_Msk
Definition: eadc_reg.h:1461
#define EADC_PWRM_PWUPRDY_Msk
Definition: eadc_reg.h:2337
#define EADC_SCTL_TRGDLYCNT_Msk
Definition: eadc_reg.h:1467
#define EADC_SCTL_EXTREN_Msk
Definition: eadc_reg.h:1458
__IO uint32_t CTL
Definition: eadc_reg.h:1200
__IO uint32_t SCTL[19]
Definition: eadc_reg.h:1207
__IO uint32_t PWRM
Definition: eadc_reg.h:1218
uint32_t SystemCoreClock
Definition: system_M480.c:21