Kamcho Library 02.00.03  lib.kamcho.02.00.03.287
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 ADCCH:6;
22  uint8_t RESERVED:2;
23  };
24  uint8_t BYTE;
25  } CHANNELS;
26  union {
27  struct {
28  uint8_t ADCSTART:1;
29  uint8_t RESERVED:7;
30  };
31  uint8_t START;
32  } START;
33  uint8_t RESULT;
34  union {
35  struct {
36  uint8_t ADCCONT:1;
37  uint8_t ADCDIV:2;
38  uint8_t RESERVED:5;
39  };
40  uint8_t BYTE;
41  } ADCCLKDIV;
42  uint8_t Reserved0[98228];
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  union {
60  struct {
61  uint8_t ADCSCYC:3;
62  uint8_t ADCENFORC:1;
63  uint8_t ADCGNDOFF:1;
64  uint8_t RESERVED:3;
65  };
66  uint8_t BYTE;
67  } TRIM2;
68 } ADC_SFRS_t;
69 
73 #define ADC_SFRS ((__IO ADC_SFRS_t *) (0x50000058))
74 
75 #define E_ADC_CLK_DIV8 0
76 #define E_ADC_CLK_DIV16 1
77 #define E_ADC_CLK_DIV32 2
78 #define E_ADC_CLK_DIV64 3
79 
80 #define E_ADC_CHANNEL_GPIOA0 0
81 #define E_ADC_CHANNEL_GPIOA1 1
82 #define E_ADC_CHANNEL_GPIOA2 1
83 #define E_ADC_CHANNEL_GPIOA3 3
84 #define E_ADC_CHANNEL_GPIOA4 4
85 #define E_ADC_CHANNEL_GPIOA5 5
86 #define E_ADC_CHANNEL_GPIOA6 6
87 #define E_ADC_CHANNEL_GPIOA7 7
88 #define E_ADC_CHANNEL_GPIOB0 8
89 #define E_ADC_CHANNEL_GPIOB1 9
90 #define E_ADC_CHANNEL_GPIOB2 10
91 #define E_ADC_CHANNEL_GPIOB3 11
92 #define E_ADC_CHANNEL_GPIOB4 12
93 #define E_ADC_CHANNEL_GPIOB5 13
94 #define E_ADC_CHANNEL_GPIOB6 14
95 #define E_ADC_CHANNEL_GPIOB7 15
96 #define E_ADC_CHANNEL_GPIOC0 16
97 #define E_ADC_CHANNEL_GPIOC1 17
98 #define E_ADC_CHANNEL_GPIOC2 18
99 #define E_ADC_CHANNEL_GPIOC3 19
100 #define E_ADC_CHANNEL_GPIOC4 20
101 #define E_ADC_CHANNEL_GPIOC5 21
102 #define E_ADC_CHANNEL_GPIOC6 22
103 #define E_ADC_CHANNEL_GPIOC7 23
104 #define E_ADC_CHANNEL_GPIOD0 24
105 #define E_ADC_CHANNEL_GPIOD1 25
106 #define E_ADC_CHANNEL_GPIOD2 26
107 #define E_ADC_CHANNEL_GPIOD3 27
108 #define E_ADC_CHANNEL_GPIOD4 28
109 #define E_ADC_CHANNEL_GPIOD5 29
110 #define E_ADC_CHANNEL_GPIOD6 30
111 #define E_ADC_CHANNEL_GPIOD7 31
112 #define E_ADC_CHANNEL_GPIOE0 32
113 #define E_ADC_CHANNEL_GPIOE1 33
114 #define E_ADC_CHANNEL_GPIOE2 34
115 #define E_ADC_CHANNEL_GPIOE3 35
116 #define E_ADC_CHANNEL_GPIOE4 36
117 #define E_ADC_CHANNEL_GPIOE5 37
118 #define E_ADC_CHANNEL_GPIOE6 38
119 #define E_ADC_CHANNEL_GPIOE7 39
120 #define E_ADC_CHANNEL_PTAT 47
121 
127 static __INLINE void f_ADC_SelectChannel(uint8_t channel)
128 {
129  ADC_SFRS->CHANNELS.ADCCH = channel;
130 }
131 
137 static __INLINE void f_ADC_ClkDiv(uint8_t div)
138 {
139  ADC_SFRS->ADCCLKDIV.ADCDIV = div;
140 }
141 
147 static __INLINE void f_ADC_SampleCycle(uint8_t cycle)
148 {
149  ADC_SFRS->TRIM2.ADCSCYC = cycle - 1;
150 }
151 
157 static __INLINE uint8_t f_ADC_Read(void)
158 {
159  return ADC_SFRS->RESULT;
160 }
161 
165 static __INLINE void f_ADC_Start(void)
166 {
167  ADC_SFRS->START.ADCSTART = 1;
168 }
169 
175 static __INLINE uint8_t f_ADC_ConversionInProgress()
176 {
177  return ADC_SFRS->START.ADCSTART;
178 }
179 
185 static __INLINE void f_ADC_ReferenceHigh(uint8_t val)
186 {
187  ADC_SFRS->TRIM0.ADCREFH = val;
188 }
189 
195 static __INLINE void f_ADC_ReferenceLow(uint8_t val)
196 {
197  ADC_SFRS->TRIM0.ADCREFL = val;
198 }
199 
205 static __INLINE void f_ADC_ReferenceGain(uint8_t val)
206 {
207  ADC_SFRS->TRIM1.ADCPGN = val;
208 }
209 
213 static __INLINE void f_ADC_SetRefSourceVDD(void)
214 {
215  ADC_SFRS->TRIM1.ADCREFS = 1;
216 }
217 
221 static __INLINE void f_ADC_SetRefSourceBandGap(void)
222 {
223  ADC_SFRS->TRIM1.ADCREFS = 0;
224 }
225 
229 static __INLINE void f_ADC_EnableStreamingMode(void)
230 {
231  ADC_SFRS->ADCCLKDIV.ADCCONT = 1;
232 }
233 
237 static __INLINE void f_ADC_DisableStreamingMode(void)
238 {
239  ADC_SFRS->ADCCLKDIV.ADCCONT = 0;
240 }
241 
245 static __INLINE void f_ADC_EnableCalibrationMode(void)
246 {
247  ADC_SFRS->TRIM1.ADCCAL = 1;
248 }
249 
253 static __INLINE void f_ADC_DisableCalibrationMode(void)
254 {
255  ADC_SFRS->TRIM1.ADCCAL = 0;
256 }
257 
261 static __INLINE void f_ADC_EnableOffsetCalMode(void)
262 {
263  ADC_SFRS->TRIM1.ADCSW = 1;
264 }
265 
269 static __INLINE void f_ADC_EnableDoubleSample(void)
270 {
271  ADC_SFRS->TRIM1.ADCSW = 2;
272 }
273 
277 static __INLINE void f_ADC_DisableDoubleSample(void)
278 {
279  ADC_SFRS->TRIM1.ADCSW = 0;
280 }
281 
282 #endif /* __ADC_SFRS_H__ */
static __INLINE void f_ADC_EnableOffsetCalMode(void)
Enable ADC offset calibration mode.
Definition: adc_sfrs.h:261
static __INLINE uint8_t f_ADC_ConversionInProgress()
Check ADC progress.
Definition: adc_sfrs.h:175
static __INLINE void f_ADC_SampleCycle(uint8_t cycle)
Set ADC sample cycle.
Definition: adc_sfrs.h:147
static __INLINE void f_ADC_DisableStreamingMode(void)
Disable ADC streaming mode.
Definition: adc_sfrs.h:237
static __INLINE void f_ADC_ReferenceGain(uint8_t val)
Set ADC reference gain.
Definition: adc_sfrs.h:205
static __INLINE void f_ADC_SetRefSourceVDD(void)
Select VDD as ADC reference source.
Definition: adc_sfrs.h:213
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:245
static __INLINE uint8_t f_ADC_Read(void)
Read ADC result.
Definition: adc_sfrs.h:157
static __INLINE void f_ADC_ClkDiv(uint8_t div)
Set ADC clock divider.
Definition: adc_sfrs.h:137
static __INLINE void f_ADC_EnableStreamingMode(void)
Enable ADC streaming mode.
Definition: adc_sfrs.h:229
static __INLINE void f_ADC_DisableCalibrationMode(void)
Disable ADC calibration mode.
Definition: adc_sfrs.h:253
#define ADC_SFRS
The starting address of ADC block.
Definition: adc_sfrs.h:73
static __INLINE void f_ADC_ReferenceLow(uint8_t val)
Set ADC low reference level.
Definition: adc_sfrs.h:195
uint8_t START
Definition: adc_sfrs.h:31
static __INLINE void f_ADC_SelectChannel(uint8_t channel)
Select ADC channel.
Definition: adc_sfrs.h:127
static __INLINE void f_ADC_DisableDoubleSample(void)
Disable ADC double sample mode.
Definition: adc_sfrs.h:277
static __INLINE void f_ADC_SetRefSourceBandGap(void)
Select band gap as ADC reference source.
Definition: adc_sfrs.h:221
static __INLINE void f_ADC_Start(void)
Start ADC conversion.
Definition: adc_sfrs.h:165
uint8_t RESULT
Definition: adc_sfrs.h:33
static __INLINE void f_ADC_ReferenceHigh(uint8_t val)
Set ADC high reference level.
Definition: adc_sfrs.h:185
uint8_t BYTE
Definition: adc_sfrs.h:24
static __INLINE void f_ADC_EnableDoubleSample(void)
Enable ADC double sample mode.
Definition: adc_sfrs.h:269