| NUC029FAE BSP V3.01.002 The Board Support Package for NUC029FAE

adc.c
Go to the documentation of this file.
1 /**************************************************************************/
12 #include "NUC029FAE.h"
13
38 void ADC_Open(ADC_T *adc,
39 uint32_t u32InputMode,
40 uint32_t u32OpMode,
41 uint32_t u32ChMask)
42 {
43
44 ADC->ADCR = 0; // A clean start.
45 ADC->ADCHER = (ADC->ADCHER & ~ADC_ADCHER_CHEN_Msk) | u32ChMask;
46 return;
47 }
48
54 void ADC_Close(ADC_T *adc)
55 {
56 SYS->IPRSTC2 |= SYS_IPRSTC2_ADC_RST_Msk;
57 SYS->IPRSTC2 &= ~SYS_IPRSTC2_ADC_RST_Msk;
58 return;
59
60 }
61
76 void ADC_EnableHWTrigger(ADC_T *adc,
77 uint32_t u32Source,
78 uint32_t u32Param)
79 {
80 ADC->ADCR &= ~(ADC_TRIGGER_BY_PWM | ADC_RISING_EDGE_TRIGGER | ADC_ADCR_TRGEN_Msk);
81 if(u32Source == ADC_TRIGGER_BY_EXT_PIN)
82 {
83 ADC->ADCR |= u32Source | u32Param | ADC_ADCR_TRGEN_Msk;
84 }
85 else
86 {
87 ADC->ADTDCR = (ADC->ADTDCR & ~ADC_ADTDCR_PTDT_Msk) | u32Param;
88 ADC->ADCR |= u32Source | ADC_ADCR_TRGEN_Msk;
89 }
90 return;
91 }
92
98 void ADC_DisableHWTrigger(ADC_T *adc)
99 {
100 ADC->ADCR &= ~(ADC_TRIGGER_BY_PWM | ADC_RISING_EDGE_TRIGGER | ADC_ADCR_TRGEN_Msk);
101 return;
102 }
103
123 void ADC_SetExtraSampleTime(ADC_T *adc,
124 uint32_t u32ChNum,
125 uint32_t u32SampleTime)
126 {
127 ADC->ADSAMP = (ADC->ADSAMP & ~ADC_ADSAMP_SAMPCNT_Msk) | u32SampleTime;
128 }
129
141 void ADC_EnableInt(ADC_T *adc, uint32_t u32Mask)
142 {
143 if(u32Mask & ADC_ADF_INT)
144 ADC->ADCR |= ADC_ADCR_ADIE_Msk;
145 if(u32Mask & ADC_CMP0_INT)
146 ADC->ADCMPR[0] |= ADC_ADCMPR_CMPIE_Msk;
147 if(u32Mask & ADC_CMP1_INT)
148 ADC->ADCMPR[1] |= ADC_ADCMPR_CMPIE_Msk;
149
150 return;
151 }
152
164 void ADC_DisableInt(ADC_T *adc, uint32_t u32Mask)
165 {
166 if(u32Mask & ADC_ADF_INT)
167 ADC->ADCR &= ~ADC_ADCR_ADIE_Msk;
168 if(u32Mask & ADC_CMP0_INT)
169 ADC->ADCMPR[0] &= ~ADC_ADCMPR_CMPIE_Msk;
170 if(u32Mask & ADC_CMP1_INT)
171 ADC->ADCMPR[1] &= ~ADC_ADCMPR_CMPIE_Msk;
172
173 return;
174 }
175
176
177 /* end of group NUC029FAE_ADC_EXPORTED_FUNCTIONS */
179 /* end of group NUC029FAE_ADC_Driver */
181 /* end of group NUC029FAE_Device_Driver */
183
184 /*** (C) COPYRIGHT 2013 Nuvoton Technology Corp. ***/
ADC_EnableHWTrigger
void ADC_EnableHWTrigger(ADC_T *adc, uint32_t u32Source, uint32_t u32Param)
Configure the hardware trigger condition and enable hardware trigger.
Definition: adc.c:76
ADC_DisableHWTrigger
void ADC_DisableHWTrigger(ADC_T *adc)
Disable hardware trigger ADC function.
Definition: adc.c:98
NUC029FAE.h
NUC029FAE peripheral access layer header file. This file contains all the peripheral register's defin...
ADC_DisableInt
void ADC_DisableInt(ADC_T *adc, uint32_t u32Mask)
Disable the interrupt(s) selected by u32Mask parameter.
Definition: adc.c:164
ADC_CMP0_INT
#define ADC_CMP0_INT
Definition: adc.h:42
ADC_Open
void ADC_Open(ADC_T *adc, uint32_t u32InputMode, uint32_t u32OpMode, uint32_t u32ChMask)
This API configures ADC module to be ready for convert the input from selected channel.
Definition: adc.c:38
ADC_Close
void ADC_Close(ADC_T *adc)
Disable ADC module.
Definition: adc.c:54
ADC_RISING_EDGE_TRIGGER
#define ADC_RISING_EDGE_TRIGGER
Definition: adc.h:40
ADC_ADF_INT
#define ADC_ADF_INT
Definition: adc.h:41
SYS
#define SYS
Pointer to SYS register structure.
Definition: NUC029FAE.h:3227
ADC_SetExtraSampleTime
void ADC_SetExtraSampleTime(ADC_T *adc, uint32_t u32ChNum, uint32_t u32SampleTime)
Set ADC sample time for designated channel.
Definition: adc.c:123
ADC_TRIGGER_BY_PWM
#define ADC_TRIGGER_BY_PWM
Definition: adc.h:38
ADC_CMP1_INT
#define ADC_CMP1_INT
Definition: adc.h:43
ADC
#define ADC
Pointer to ADC register structure.
Definition: NUC029FAE.h:3224
ADC_T
Definition: NUC029FAE.h:642
ADC_EnableInt
void ADC_EnableInt(ADC_T *adc, uint32_t u32Mask)
Enable the interrupt(s) selected by u32Mask parameter.
Definition: adc.c:141
ADC_TRIGGER_BY_EXT_PIN
#define ADC_TRIGGER_BY_EXT_PIN
Definition: adc.h:37