A31G12x F/W Packages  2.5.0
ABOV Cortex-M0+ Core based MCUs Integrated Driver
A31G12x_hal_adc.h
Go to the documentation of this file.
1 /***************************************************************************//****************************************************************************/
34 
35 #ifndef _ADC_H_
36 #define _ADC_H_
37 
38 #include "A31G12x.h"
39 #include "A31G12x_hal_aa_types.h"
40 
41 #ifdef __cplusplus
42 extern "C" {
43 #endif
44 
45 //******************************************************************************
46 // Constant
47 //******************************************************************************
48 
49 //---------- ADC Trigger Signal Definition ----------
50 #define ADC_ADST (0x0uL << 11)
51 #define ADC_T10M (0x1uL << 11)
52 #define ADC_T11M (0x2uL << 11)
53 #define ADC_T12M (0x3uL << 11)
54 #define ADC_T30 (0x4uL << 11)
55 
56 //---------- ADC Reference Selection Definition ----------
57 #define ADC_VDD (0x0uL << 10)
58 #define ADC_AVREF (0x1uL << 10)
59 
60 //---------- ADC Convesion Start Definition ----------
61 //#define ADC_ADST (0x1uL << 8)
62 
63 //---------- ADC Interrupt Enable/Disable Definition ----------
64 #define ADC_INTDIS (0x0uL << 5)
65 #define ADC_INTEN (0x1uL << 5)
66 
67 //---------- ADC Channel Selection Definition ----------
68 #define ADC_AN0 (0x00uL << 0)
69 #define ADC_AN1 (0x01uL << 0)
70 #define ADC_AN2 (0x02uL << 0)
71 #define ADC_AN3 (0x03uL << 0)
72 #define ADC_AN4 (0x04uL << 0)
73 #define ADC_AN5 (0x05uL << 0)
74 #define ADC_AN6 (0x06uL << 0)
75 #define ADC_AN7 (0x07uL << 0)
76 #define ADC_AN8 (0x08uL << 0)
77 #define ADC_AN9 (0x09uL << 0)
78 #define ADC_AN10 (0x0auL << 0)
79 
80 /*-------------------------------------------------------------------------*//*-------------------------------------------------------------------------*/
83 #define ADC_STAT_END ((1uL << 4))
84 
85 #define ADC_REF_VDD 0
86 #define ADC_REF_AVREF 1
88 #define ADC_TRIGGER_DISABLE 0
89 #define ADC_TRIGGER_TIMER10 1
90 #define ADC_TRIGGER_TIMER11 2
91 #define ADC_TRIGGER_TIMER12 3
92 #define ADC_TRIGGER_TIMER30 4
94 //******************************************************************************
95 // Type
96 //******************************************************************************
97 
98 //==============================================================================
99 // Structure
100 //==============================================================================
101 
102 typedef struct
103 {
104  /* ADC_CR */
105  uint32_t RefSel;
106  uint32_t TrgSel;
107 
108  /* ADC_PREDR */
109  uint32_t InClkDiv;
110 } ADC_CFG_Type;
111 
112 //******************************************************************************
113 // Macro
114 //******************************************************************************
115 
116 /*-------------------------------------------------------------------------*//*-------------------------------------------------------------------------*/
120 #define ADCEN() (ADC->CR_b.ADCEN = 1)
121 
122 /*-------------------------------------------------------------------------*//*-------------------------------------------------------------------------*/
126 #define ADCDIS() (ADC->CR_b.ADCEN = 0)
127 
128 /*-------------------------------------------------------------------------*//*-------------------------------------------------------------------------*/
132 #define ADCADST_Set() (ADC->CR_b.ADST = 1)
133 
134 /*-------------------------------------------------------------------------*//*-------------------------------------------------------------------------*/
138 #define ADCADST_Get() (ADC->CR_b.ADST)
139 
140 /*-------------------------------------------------------------------------*//*-------------------------------------------------------------------------*/
144 #define ADCInt_GetFg() (ADC->CR_b.ADCIFLAG)
145 
146 /*-------------------------------------------------------------------------*//*-------------------------------------------------------------------------*/
150 #define ADCInt_ClrFg() (ADC->CR_b.ADCIFLAG = 1)
151 
152 /*-------------------------------------------------------------------------*//*-------------------------------------------------------------------------*/
156 #define ADCData_Get() (ADC->DR)
157 
158 /*-------------------------------------------------------------------------*//*-------------------------------------------------------------------------*/
162 #define ADC_DR_RESULT( n ) ((n) & ADC_DR_ADDATA_Msk)
163 
164 //******************************************************************************
165 // Function
166 //******************************************************************************
167 
168 HAL_Status_Type HAL_ADC_Init( ADC_Type* ADCx, ADC_CFG_Type* ADC_Config );
169 HAL_Status_Type HAL_ADC_DeInit( ADC_Type* ADCx );
170 
171 HAL_Status_Type HAL_ADC_ConfigInterrupt( ADC_Type* ADCx, FunctionalState NewState );
172 HAL_Status_Type HAL_ADC_ChannelSel( ADC_Type* ADCx, uint32_t Channel );
173 HAL_Status_Type HAL_ADC_Start( ADC_Type* ADCx );
174 HAL_Status_Type HAL_ADC_Stop( ADC_Type* ADCx );
175 HAL_Status_Type HAL_ADC_ClearStatus( ADC_Type* ADCx );
176 uint32_t HAL_ADC_GetStatus( ADC_Type* ADCx );
177 
178 uint16_t HAL_ADC_GetData( ADC_Type* ADCx );
179 
180 #ifdef __cplusplus
181 }
182 #endif
183 
184 #endif /* _ADC_H_ */
185 
HAL_Status_Type HAL_ADC_Stop(ADC_Type *ADCx)
Stop A/D conversion If this function called after a conversion cycle starts, the current conversion i...
uint32_t InClkDiv
HAL_Status_Type HAL_ADC_Init(ADC_Type *ADCx, ADC_CFG_Type *ADC_Config)
Initialize the ADC peripheral with the specified parameters.
Contains the ABOV typedefs for C standard types. It is intended to be used in ISO C conforming develo...
HAL_Status_Type
uint16_t HAL_ADC_GetData(ADC_Type *ADCx)
Get Result conversion from A/D data register.
uint32_t HAL_ADC_GetStatus(ADC_Type *ADCx)
Get ADC channel status.
HAL_Status_Type HAL_ADC_ChannelSel(ADC_Type *ADCx, uint32_t Channel)
Select ADC Channel Number.
HAL_Status_Type HAL_ADC_Start(ADC_Type *ADCx)
Start A/D conversion.
FunctionalState
HAL_Status_Type HAL_ADC_ClearStatus(ADC_Type *ADCx)
Clear ADC channel status.
HAL_Status_Type HAL_ADC_DeInit(ADC_Type *ADCx)
Close ADC.
HAL_Status_Type HAL_ADC_ConfigInterrupt(ADC_Type *ADCx, FunctionalState NewState)
ADC interrupt configuration.