Herzog Library 00.00.01  rel_libdev.herzog.00.00.01.10606
adc_sfrs.h
Go to the documentation of this file.
1 
12 #ifndef __ADC_SFRS_H__
13 #define __ADC_SFRS_H__
14 
18 typedef struct {
19  union {
20  struct {
21  uint8_t ADCDIV:6;
22  uint8_t :1;
23  uint8_t SWMODE:1;
24  };
25  uint8_t BYTE;
26  } ADCCLKDIV;
27  union {
28  struct {
29  uint8_t ADCCH:5;
30  uint8_t :3;
31  };
32  uint8_t BYTE;
33  } CHANNELS;
34  union {
35  struct {
36  uint8_t ADCSTART:1;
37  uint8_t :7;
38  };
39  uint8_t START;
40  } START;
41  uint8_t RESULT;
42  uint8_t Reserved0[98297];
43  union {
44  struct {
45  uint8_t ADCREFL:4;
46  uint8_t ADCREFH:4;
47  };
48  uint8_t BYTE;
49  } TRIM0;
50  union {
51  struct {
52  uint8_t ADCPGN:4;
53  uint8_t ADCREFS:1;
54  uint8_t ADCCAL:1;
55  uint8_t ADCSW:2;
56  };
57  uint8_t BYTE;
58  } TRIM1;
59 } ADC_SFRS_t;
60 
64 #define ADC_SFRS ((__IO ADC_SFRS_t *) (0x5000000B))
65 
66 #define E_ADC_CLK_DIV2 0
67 #define E_ADC_CLK_DIV4 1
68 #define E_ADC_CLK_DIV64 0x1F
69 
70 #define E_ADC_CHANNEL_GPIOD0 0
71 #define E_ADC_CHANNEL_GPIOD1 1
72 #define E_ADC_CHANNEL_GPIOD2 2
73 #define E_ADC_CHANNEL_GPIOD3 3
74 #define E_ADC_CHANNEL_GPIOD4 4
75 #define E_ADC_CHANNEL_GPIOD5 5
76 #define E_ADC_CHANNEL_GPIOD6 6
77 #define E_ADC_CHANNEL_GPIOD7 7
78 #define E_ADC_CHANNEL_GPIOE0 8
79 #define E_ADC_CHANNEL_GPIOE1 9
80 #define E_ADC_CHANNEL_GPIOE2 10
81 #define E_ADC_CHANNEL_GPIOE3 11
82 #define E_ADC_CHANNEL_GPIOE4 12
83 #define E_ADC_CHANNEL_GPIOE5 13
84 #define E_ADC_CHANNEL_GPIOE6 14
85 #define E_ADC_CHANNEL_GPIOE7 15
86 #define E_ADC_CHANNEL_GPIOF0 16
87 #define E_ADC_CHANNEL_GPIOF1 17
88 #define E_ADC_CHANNEL_GPIOF2 18
89 #define E_ADC_CHANNEL_VSUPPLY 19
90 
96 static __INLINE void f_ADC_SelectChannel(uint8_t channel)
97 {
98  ADC_SFRS->CHANNELS.ADCCH = channel;
99 }
100 
106 static __INLINE void f_ADC_ClkDiv(uint8_t div)
107 {
108  ADC_SFRS->ADCCLKDIV.ADCDIV = div;
109 }
110 
116 static __INLINE void f_ADC_SampleCycle(uint8_t cycle)
117 {
118 }
119 
125 static __INLINE uint8_t f_ADC_Read(void)
126 {
127  return ADC_SFRS->RESULT;
128 }
129 
133 static __INLINE void f_ADC_Start(void)
134 {
135  ADC_SFRS->START.ADCSTART = 1;
136 }
137 
143 static __INLINE uint8_t f_ADC_ConversionInProgress()
144 {
145  return ADC_SFRS->START.ADCSTART;
146 }
147 
153 static __INLINE void f_ADC_ReferenceHigh(uint8_t val)
154 {
155  ADC_SFRS->TRIM0.ADCREFH = val;
156 }
157 
163 static __INLINE void f_ADC_ReferenceLow(uint8_t val)
164 {
165  ADC_SFRS->TRIM0.ADCREFL = val;
166 }
167 
173 static __INLINE void f_ADC_ReferenceGain(uint8_t val)
174 {
175  ADC_SFRS->TRIM1.ADCPGN = val;
176 }
177 
181 static __INLINE void f_ADC_SetRefSourceVDD(void)
182 {
183  ADC_SFRS->TRIM1.ADCREFS = 1;
184 }
185 
189 static __INLINE void f_ADC_SetRefSourceBandGap(void)
190 {
191  ADC_SFRS->TRIM1.ADCREFS = 0;
192 }
193 
197 static __INLINE void f_ADC_EnableStreamingMode(void)
198 {
199 }
200 
204 static __INLINE void f_ADC_DisableStreamingMode(void)
205 {
206 }
207 
211 static __INLINE void f_ADC_EnableCalibrationMode(void)
212 {
213  ADC_SFRS->TRIM1.ADCCAL = 1;
214 }
215 
219 static __INLINE void f_ADC_DisableCalibrationMode(void)
220 {
221  ADC_SFRS->TRIM1.ADCCAL = 0;
222 }
223 
227 static __INLINE void f_ADC_EnableOffsetCalMode(void)
228 {
229  ADC_SFRS->TRIM1.ADCSW = 1;
230 }
231 
235 static __INLINE void f_ADC_EnableDoubleSample(void)
236 {
237  ADC_SFRS->TRIM1.ADCSW = 2;
238 }
239 
243 static __INLINE void f_ADC_DisableDoubleSample(void)
244 {
245  ADC_SFRS->TRIM1.ADCSW = 0;
246 }
247 
248 #endif /* __ADC_SFRS_H__ */
static __INLINE void f_ADC_EnableOffsetCalMode(void)
Enable ADC offset calibration mode.
Definition: adc_sfrs.h:227
static __INLINE uint8_t f_ADC_ConversionInProgress()
Check ADC progress.
Definition: adc_sfrs.h:143
static __INLINE void f_ADC_SampleCycle(uint8_t cycle)
Set ADC sample cycle.
Definition: adc_sfrs.h:116
static __INLINE void f_ADC_DisableStreamingMode(void)
Disable ADC streaming mode.
Definition: adc_sfrs.h:204
static __INLINE void f_ADC_ReferenceGain(uint8_t val)
Set ADC reference gain.
Definition: adc_sfrs.h:173
static __INLINE void f_ADC_SetRefSourceVDD(void)
Select VDD as ADC reference source.
Definition: adc_sfrs.h:181
A structure to represent Special Function Registers for ADC block.
Definition: adc_sfrs.h:18
static __INLINE void f_ADC_EnableCalibrationMode(void)
Enable ADC calibration mode.
Definition: adc_sfrs.h:211
static __INLINE uint8_t f_ADC_Read(void)
Read ADC result.
Definition: adc_sfrs.h:125
static __INLINE void f_ADC_ClkDiv(uint8_t div)
Set ADC clock divider.
Definition: adc_sfrs.h:106
static __INLINE void f_ADC_EnableStreamingMode(void)
Enable ADC streaming mode.
Definition: adc_sfrs.h:197
static __INLINE void f_ADC_DisableCalibrationMode(void)
Disable ADC calibration mode.
Definition: adc_sfrs.h:219
#define ADC_SFRS
The starting address of ADC block.
Definition: adc_sfrs.h:64
static __INLINE void f_ADC_ReferenceLow(uint8_t val)
Set ADC low reference level.
Definition: adc_sfrs.h:163
uint8_t START
Definition: adc_sfrs.h:39
static __INLINE void f_ADC_SelectChannel(uint8_t channel)
Select ADC channel.
Definition: adc_sfrs.h:96
static __INLINE void f_ADC_DisableDoubleSample(void)
Disable ADC double sample mode.
Definition: adc_sfrs.h:243
static __INLINE void f_ADC_SetRefSourceBandGap(void)
Select band gap as ADC reference source.
Definition: adc_sfrs.h:189
static __INLINE void f_ADC_Start(void)
Start ADC conversion.
Definition: adc_sfrs.h:133
uint8_t RESULT
Definition: adc_sfrs.h:41
static __INLINE void f_ADC_ReferenceHigh(uint8_t val)
Set ADC high reference level.
Definition: adc_sfrs.h:153
uint8_t BYTE
Definition: adc_sfrs.h:25
static __INLINE void f_ADC_EnableDoubleSample(void)
Enable ADC double sample mode.
Definition: adc_sfrs.h:235