JM9 XRCU Board 0.1.2
Libraries API Reference
Loading...
Searching...
No Matches
pins_arduino_analog.h
1/*
2 *******************************************************************************
3 * Copyright (c) 2020, STMicroelectronics
4 * All rights reserved.
5 *
6 * This software component is licensed by ST under BSD 3-Clause license,
7 * the "License"; You may not use this file except in compliance with the
8 * License. You may obtain a copy of the License at:
9 * opensource.org/licenses/BSD-3-Clause
10 *
11 *******************************************************************************
12 */
13#ifndef _PINS_ARDUINO_ANALOG_H_
14#define _PINS_ARDUINO_ANALOG_H_
15#include "variant.h"
16#include "PinNames.h"
17
18/*
19 * Pin number Analog base
20 * To check if a pin number is an analog pin:
21 * ((p & PNUM_ANALOG_BASE) == PNUM_ANALOG_BASE)
22 * if true then p is an analog pin number
23 * else not
24 */
25#define PNUM_ANALOG_BASE 0xC0
26/*
27 * Pin number Analog index
28 * allows to retrieve the pin number index of an analog pin
29 * in the analogInputPin[] array:
30 * analogInputPin[p & PNUM_ANALOG_INDEX]
31 */
32#define PNUM_ANALOG_INDEX 0x3F
33
34/* Arduino analog pins */
35#ifndef NUM_ANALOG_INPUTS
36 #define NUM_ANALOG_INPUTS 0
37#endif
38
39/* Analog internal pin numbers follow the analog pin number */
40#define NUM_ANALOG_INTERNAL_FIRST (PNUM_ANALOG_BASE + NUM_ANALOG_INPUTS)
41
42/* ADC internal channels (not a pins) */
43/* Only used for analogRead() */
44#if defined(ADC_CHANNEL_TEMPSENSOR) || defined(ADC_CHANNEL_TEMPSENSOR_ADC1)
45 #define ATEMP (NUM_ANALOG_INTERNAL_FIRST)
46#endif
47#ifdef ADC_CHANNEL_VREFINT
48 #define AVREF (NUM_ANALOG_INTERNAL_FIRST + 1)
49#endif
50#ifdef ADC_CHANNEL_VBAT
51 #define AVBAT (NUM_ANALOG_INTERNAL_FIRST + 2)
52#endif
53#if defined(ADC5) && defined(ADC_CHANNEL_TEMPSENSOR_ADC5)
54 #define ATEMP_ADC5 (NUM_ANALOG_INTERNAL_FIRST + 3)
55#endif
56
57/* If NUM_ANALOG_INPUTS is not defined there is no analog pins defined. */
58/* Anyway ADC internal channels are always available. */
59#if NUM_ANALOG_INPUTS > 0
60#define PIN_A0 PNUM_ANALOG_BASE
61#if NUM_ANALOG_INPUTS > 1
62 #define PIN_A1 (PIN_A0 + 1)
63#endif
64#if NUM_ANALOG_INPUTS > 2
65 #define PIN_A2 (PIN_A1 + 1)
66#endif
67#if NUM_ANALOG_INPUTS > 3
68 #define PIN_A3 (PIN_A2 + 1)
69#endif
70#if NUM_ANALOG_INPUTS > 4
71 #define PIN_A4 (PIN_A3 + 1)
72#endif
73#if NUM_ANALOG_INPUTS > 5
74 #define PIN_A5 (PIN_A4 + 1)
75#endif
76#if NUM_ANALOG_INPUTS > 6
77 #define PIN_A6 (PIN_A5 + 1)
78#endif
79#if NUM_ANALOG_INPUTS > 7
80 #define PIN_A7 (PIN_A6 + 1)
81#endif
82#if NUM_ANALOG_INPUTS > 8
83 #define PIN_A8 (PIN_A7 + 1)
84#endif
85#if NUM_ANALOG_INPUTS > 9
86 #define PIN_A9 (PIN_A8 + 1)
87#endif
88#if NUM_ANALOG_INPUTS > 10
89 #define PIN_A10 (PIN_A9 + 1)
90#endif
91#if NUM_ANALOG_INPUTS > 11
92 #define PIN_A11 (PIN_A10 + 1)
93#endif
94#if NUM_ANALOG_INPUTS > 12
95 #define PIN_A12 (PIN_A11 + 1)
96#endif
97#if NUM_ANALOG_INPUTS > 13
98 #define PIN_A13 (PIN_A12 + 1)
99#endif
100#if NUM_ANALOG_INPUTS > 14
101 #define PIN_A14 (PIN_A13 + 1)
102#endif
103#if NUM_ANALOG_INPUTS > 15
104 #define PIN_A15 (PIN_A14 + 1)
105#endif
106#if NUM_ANALOG_INPUTS > 16
107 #define PIN_A16 (PIN_A15 + 1)
108#endif
109#if NUM_ANALOG_INPUTS > 17
110 #define PIN_A17 (PIN_A16 + 1)
111#endif
112#if NUM_ANALOG_INPUTS > 18
113 #define PIN_A18 (PIN_A17 + 1)
114#endif
115#if NUM_ANALOG_INPUTS > 19
116 #define PIN_A19 (PIN_A18 + 1)
117#endif
118#if NUM_ANALOG_INPUTS > 20
119 #define PIN_A20 (PIN_A19 + 1)
120#endif
121#if NUM_ANALOG_INPUTS > 21
122 #define PIN_A21 (PIN_A20 + 1)
123#endif
124#if NUM_ANALOG_INPUTS > 22
125 #define PIN_A22 (PIN_A21 + 1)
126#endif
127#if NUM_ANALOG_INPUTS > 23
128 #define PIN_A23 (PIN_A22 + 1)
129#endif
130#if NUM_ANALOG_INPUTS > 24
131 #define PIN_A24 (PIN_A23 + 1)
132#endif
133#if NUM_ANALOG_INPUTS > 25
134 #define PIN_A25 (PIN_A24 + 1)
135#endif
136#if NUM_ANALOG_INPUTS > 26
137 #define PIN_A26 (PIN_A25 + 1)
138#endif
139#if NUM_ANALOG_INPUTS > 27
140 #define PIN_A27 (PIN_A26 + 1)
141#endif
142#if NUM_ANALOG_INPUTS > 28
143 #define PIN_A28 (PIN_A27 + 1)
144#endif
145#if NUM_ANALOG_INPUTS > 29
146 #define PIN_A29 (PIN_A28 + 1)
147#endif
148#if NUM_ANALOG_INPUTS > 30
149 #define PIN_A30 (PIN_A29 + 1)
150#endif
151#if NUM_ANALOG_INPUTS > 31
152 #define PIN_A31 (PIN_A30 + 1)
153#endif
154#if NUM_ANALOG_INPUTS > 32
155 #define PIN_A32 (PIN_A31 + 1)
156#endif
157#if NUM_ANALOG_INPUTS > 33
158 #define PIN_A33 (PIN_A32 + 1)
159#endif
160#if NUM_ANALOG_INPUTS > 34
161 #define PIN_A34 (PIN_A33 + 1)
162#endif
163#if NUM_ANALOG_INPUTS > 35
164 #define PIN_A35 (PIN_A34 + 1)
165#endif
166#if NUM_ANALOG_INPUTS > 36
167 #define PIN_A36 (PIN_A35 + 1)
168#endif
169#if NUM_ANALOG_INPUTS > 37
170 #define PIN_A37 (PIN_A36 + 1)
171#endif
172#if NUM_ANALOG_INPUTS > 38
173 #define PIN_A38 (PIN_A37 + 1)
174#endif
175#if NUM_ANALOG_INPUTS > 39
176 #define PIN_A39 (PIN_A38 + 1)
177#endif
178#if NUM_ANALOG_INPUTS > 40
179 #define PIN_A40 (PIN_A39 + 1)
180#endif
181#if NUM_ANALOG_INPUTS > 41
182 #define PIN_A41 (PIN_A40 + 1)
183#endif
184#if NUM_ANALOG_INPUTS > 42
185 #define PIN_A42 (PIN_A41 + 1)
186#endif
187#if NUM_ANALOG_INPUTS > 43
188 #define PIN_A43 (PIN_A42 + 1)
189#endif
190#if NUM_ANALOG_INPUTS > 44
191 #define PIN_A44 (PIN_A43 + 1)
192#endif
193#if NUM_ANALOG_INPUTS > 45
194 #define PIN_A45 (PIN_A44 + 1)
195#endif
196#if NUM_ANALOG_INPUTS > 46
197 #define PIN_A46 (PIN_A45 + 1)
198#endif
199#if NUM_ANALOG_INPUTS > 47
200 #define PIN_A47 (PIN_A46 + 1)
201#endif
202#if NUM_ANALOG_INPUTS > 48
203 #define PIN_A48 (PIN_A47 + 1)
204#endif
205#if NUM_ANALOG_INPUTS > 49
206 #define PIN_A49 (PIN_A48 + 1)
207#endif
208#if NUM_ANALOG_INPUTS > 50
209 #define PIN_A50 (PIN_A49 + 1)
210#endif
211#if NUM_ANALOG_INPUTS > 51
212 #define PIN_A51 (PIN_A50 + 1)
213#endif
214#if NUM_ANALOG_INPUTS > 52
215 #define PIN_A52 (PIN_A51 + 1)
216#endif
217#if NUM_ANALOG_INPUTS > 53
218 #define PIN_A53 (PIN_A52 + 1)
219#endif
220#if NUM_ANALOG_INPUTS > 54
221 #define PIN_A54 (PIN_A53 + 1)
222#endif
223#if NUM_ANALOG_INPUTS > 55
224 #define PIN_A55 (PIN_A54 + 1)
225#endif
226#if NUM_ANALOG_INPUTS > 56
227 #define PIN_A56 (PIN_A55 + 1)
228#endif
229#if NUM_ANALOG_INPUTS > 57
230 #define PIN_A57 (PIN_A56 + 1)
231#endif
232#if NUM_ANALOG_INPUTS > 58
233 #define PIN_A58 (PIN_A57 + 1)
234#endif
235#if NUM_ANALOG_INPUTS > 59
236 #define PIN_A59 (PIN_A58 + 1)
237#endif
238#if NUM_ANALOG_INPUTS > 60
239 #define PIN_A60 (PIN_A59 + 1)
240#endif
241#if NUM_ANALOG_INPUTS > 61
242 #define PIN_A61 (PIN_A60 + 1)
243#endif
244#if NUM_ANALOG_INPUTS > 62
245 #define PIN_A62 (PIN_A61 + 1)
246#endif
247#if NUM_ANALOG_INPUTS > 63
248 #define PIN_A63 (PIN_A62 + 1)
249#endif
250
251
252enum {
253 A0 = PIN_A0
254#if NUM_ANALOG_INPUTS > 1
255 , A1 = PIN_A1
256#endif
257#if NUM_ANALOG_INPUTS > 2
258 , A2 = PIN_A2
259#endif
260#if NUM_ANALOG_INPUTS > 3
261 , A3 = PIN_A3
262#endif
263#if NUM_ANALOG_INPUTS > 4
264 , A4 = PIN_A4
265#endif
266#if NUM_ANALOG_INPUTS > 5
267 , A5 = PIN_A5
268#endif
269#if NUM_ANALOG_INPUTS > 6
270 , A6 = PIN_A6
271#endif
272#if NUM_ANALOG_INPUTS > 7
273 , A7 = PIN_A7
274#endif
275#if NUM_ANALOG_INPUTS > 8
276 , A8 = PIN_A8
277#endif
278#if NUM_ANALOG_INPUTS > 9
279 , A9 = PIN_A9
280#endif
281#if NUM_ANALOG_INPUTS > 10
282 , A10 = PIN_A10
283#endif
284#if NUM_ANALOG_INPUTS > 11
285 , A11 = PIN_A11
286#endif
287#if NUM_ANALOG_INPUTS > 12
288 , A12 = PIN_A12
289#endif
290#if NUM_ANALOG_INPUTS > 13
291 , A13 = PIN_A13
292#endif
293#if NUM_ANALOG_INPUTS > 14
294 , A14 = PIN_A14
295#endif
296#if NUM_ANALOG_INPUTS > 15
297 , A15 = PIN_A15
298#endif
299#if NUM_ANALOG_INPUTS > 16
300 , A16 = PIN_A16
301#endif
302#if NUM_ANALOG_INPUTS > 17
303 , A17 = PIN_A17
304#endif
305#if NUM_ANALOG_INPUTS > 18
306 , A18 = PIN_A18
307#endif
308#if NUM_ANALOG_INPUTS > 19
309 , A19 = PIN_A19
310#endif
311#if NUM_ANALOG_INPUTS > 20
312 , A20 = PIN_A20
313#endif
314#if NUM_ANALOG_INPUTS > 21
315 , A21 = PIN_A21
316#endif
317#if NUM_ANALOG_INPUTS > 22
318 , A22 = PIN_A22
319#endif
320#if NUM_ANALOG_INPUTS > 23
321 , A23 = PIN_A23
322#endif
323#if NUM_ANALOG_INPUTS > 24
324 , A24 = PIN_A24
325#endif
326#if NUM_ANALOG_INPUTS > 25
327 , A25 = PIN_A25
328#endif
329#if NUM_ANALOG_INPUTS > 26
330 , A26 = PIN_A26
331#endif
332#if NUM_ANALOG_INPUTS > 27
333 , A27 = PIN_A27
334#endif
335#if NUM_ANALOG_INPUTS > 28
336 , A28 = PIN_A28
337#endif
338#if NUM_ANALOG_INPUTS > 29
339 , A29 = PIN_A29
340#endif
341#if NUM_ANALOG_INPUTS > 30
342 , A30 = PIN_A30
343#endif
344#if NUM_ANALOG_INPUTS > 31
345 , A31 = PIN_A31
346#endif
347#if NUM_ANALOG_INPUTS > 32
348 , A32 = PIN_A32
349#endif
350#if NUM_ANALOG_INPUTS > 33
351 , A33 = PIN_A33
352#endif
353#if NUM_ANALOG_INPUTS > 34
354 , A34 = PIN_A34
355#endif
356#if NUM_ANALOG_INPUTS > 35
357 , A35 = PIN_A35
358#endif
359#if NUM_ANALOG_INPUTS > 36
360 , A36 = PIN_A36
361#endif
362#if NUM_ANALOG_INPUTS > 37
363 , A37 = PIN_A37
364#endif
365#if NUM_ANALOG_INPUTS > 38
366 , A38 = PIN_A38
367#endif
368#if NUM_ANALOG_INPUTS > 39
369 , A39 = PIN_A39
370#endif
371#if NUM_ANALOG_INPUTS > 40
372 , A40 = PIN_A40
373#endif
374#if NUM_ANALOG_INPUTS > 41
375 , A41 = PIN_A41
376#endif
377#if NUM_ANALOG_INPUTS > 42
378 , A42 = PIN_A42
379#endif
380#if NUM_ANALOG_INPUTS > 43
381 , A43 = PIN_A43
382#endif
383#if NUM_ANALOG_INPUTS > 44
384 , A44 = PIN_A44
385#endif
386#if NUM_ANALOG_INPUTS > 45
387 , A45 = PIN_A45
388#endif
389#if NUM_ANALOG_INPUTS > 46
390 , A46 = PIN_A46
391#endif
392#if NUM_ANALOG_INPUTS > 47
393 , A47 = PIN_A47
394#endif
395#if NUM_ANALOG_INPUTS > 48
396 , A48 = PIN_A48
397#endif
398#if NUM_ANALOG_INPUTS > 49
399 , A49 = PIN_A49
400#endif
401#if NUM_ANALOG_INPUTS > 50
402 , A50 = PIN_A50
403#endif
404#if NUM_ANALOG_INPUTS > 51
405 , A51 = PIN_A51
406#endif
407#if NUM_ANALOG_INPUTS > 52
408 , A52 = PIN_A52
409#endif
410#if NUM_ANALOG_INPUTS > 53
411 , A53 = PIN_A53
412#endif
413#if NUM_ANALOG_INPUTS > 54
414 , A54 = PIN_A54
415#endif
416#if NUM_ANALOG_INPUTS > 55
417 , A55 = PIN_A55
418#endif
419#if NUM_ANALOG_INPUTS > 56
420 , A56 = PIN_A56
421#endif
422#if NUM_ANALOG_INPUTS > 57
423 , A57 = PIN_A57
424#endif
425#if NUM_ANALOG_INPUTS > 58
426 , A58 = PIN_A58
427#endif
428#if NUM_ANALOG_INPUTS > 59
429 , A59 = PIN_A59
430#endif
431#if NUM_ANALOG_INPUTS > 60
432 , A60 = PIN_A60
433#endif
434#if NUM_ANALOG_INPUTS > 61
435 , A61 = PIN_A61
436#endif
437#if NUM_ANALOG_INPUTS > 62
438 , A62 = PIN_A62
439#endif
440#if NUM_ANALOG_INPUTS > 63
441 , A63 = PIN_A63
442#endif
443};
444#define MAX_ANALOG_INPUTS 64
445#else
446#define MAX_ANALOG_INPUTS 0
447#endif /* NUM_ANALOG_INPUTS > 0 */
448
449#endif /*_PINS_ARDUINO_ANALOG_H_*/