arduino_board_pins.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2023 Otto-von-Guericke-Universität Magdeburg
3  *
4  * This file is subject to the terms and conditions of the GNU Lesser
5  * General Public License v2.1. See the file LICENSE in the top level
6  * directory for more details.
7  */
8 
9 #pragma once
10 
25 #include "arduino_iomap.h"
26 #include "periph/gpio.h"
27 
28 #ifdef __cplusplus
29 extern "C" {
30 #endif
31 
32 #ifdef DOXYGEN
38 #define ARDUINO_LED /* board specific number */
39 
45 #define ARDUINO_PIN_LAST /* board specific number */
46 #endif /* DOXYGEN */
47 
48 #if !defined(ARDUINO_LED) && !defined(DOXYGEN)
49 #define ARDUINO_LED (13)
50 #endif
51 
52 #ifndef ARDUINO_PIN_LAST
53 # error "ARDUINO_PIN_LAST undefined"
54 #endif
55 
75 static const gpio_t arduino_pinmap[] = {
76 #ifndef DOXYGEN
77 #ifdef ARDUINO_PIN_0
78  ARDUINO_PIN_0,
79 #elif ARDUINO_PIN_LAST > 0
80  GPIO_UNDEF,
81 #endif
82 #ifdef ARDUINO_PIN_1
83  ARDUINO_PIN_1,
84 #elif ARDUINO_PIN_LAST > 1
85  GPIO_UNDEF,
86 #endif
87 #ifdef ARDUINO_PIN_2
88  ARDUINO_PIN_2,
89 #elif ARDUINO_PIN_LAST > 2
90  GPIO_UNDEF,
91 #endif
92 #ifdef ARDUINO_PIN_3
93  ARDUINO_PIN_3,
94 #elif ARDUINO_PIN_LAST > 3
95  GPIO_UNDEF,
96 #endif
97 #ifdef ARDUINO_PIN_4
98  ARDUINO_PIN_4,
99 #elif ARDUINO_PIN_LAST > 4
100  GPIO_UNDEF,
101 #endif
102 #ifdef ARDUINO_PIN_5
103  ARDUINO_PIN_5,
104 #elif ARDUINO_PIN_LAST > 5
105  GPIO_UNDEF,
106 #endif
107 #ifdef ARDUINO_PIN_6
108  ARDUINO_PIN_6,
109 #elif ARDUINO_PIN_LAST > 6
110  GPIO_UNDEF,
111 #endif
112 #ifdef ARDUINO_PIN_7
113  ARDUINO_PIN_7,
114 #elif ARDUINO_PIN_LAST > 7
115  GPIO_UNDEF,
116 #endif
117 #ifdef ARDUINO_PIN_8
118  ARDUINO_PIN_8,
119 #elif ARDUINO_PIN_LAST > 8
120  GPIO_UNDEF,
121 #endif
122 #ifdef ARDUINO_PIN_9
123  ARDUINO_PIN_9,
124 #elif ARDUINO_PIN_LAST > 9
125  GPIO_UNDEF,
126 #endif
127 #ifdef ARDUINO_PIN_10
128  ARDUINO_PIN_10,
129 #elif ARDUINO_PIN_LAST > 10
130  GPIO_UNDEF,
131 #endif
132 #ifdef ARDUINO_PIN_11
133  ARDUINO_PIN_11,
134 #elif ARDUINO_PIN_LAST > 11
135  GPIO_UNDEF,
136 #endif
137 #ifdef ARDUINO_PIN_12
138  ARDUINO_PIN_12,
139 #elif ARDUINO_PIN_LAST > 12
140  GPIO_UNDEF,
141 #endif
142 #ifdef ARDUINO_PIN_13
143  ARDUINO_PIN_13,
144 #elif ARDUINO_PIN_LAST > 13
145  GPIO_UNDEF,
146 #endif
147 #ifdef ARDUINO_PIN_14
148  ARDUINO_PIN_14,
149 #elif ARDUINO_PIN_LAST > 14
150  GPIO_UNDEF,
151 #endif
152 #ifdef ARDUINO_PIN_15
153  ARDUINO_PIN_15,
154 #elif ARDUINO_PIN_LAST > 15
155  GPIO_UNDEF,
156 #endif
157 #ifdef ARDUINO_PIN_16
158  ARDUINO_PIN_16,
159 #elif ARDUINO_PIN_LAST > 16
160  GPIO_UNDEF,
161 #endif
162 #ifdef ARDUINO_PIN_17
163  ARDUINO_PIN_17,
164 #elif ARDUINO_PIN_LAST > 17
165  GPIO_UNDEF,
166 #endif
167 #ifdef ARDUINO_PIN_18
168  ARDUINO_PIN_18,
169 #elif ARDUINO_PIN_LAST > 18
170  GPIO_UNDEF,
171 #endif
172 #ifdef ARDUINO_PIN_19
173  ARDUINO_PIN_19,
174 #elif ARDUINO_PIN_LAST > 19
175  GPIO_UNDEF,
176 #endif
177 #ifdef ARDUINO_PIN_20
178  ARDUINO_PIN_20,
179 #elif ARDUINO_PIN_LAST > 20
180  GPIO_UNDEF,
181 #endif
182 #ifdef ARDUINO_PIN_21
183  ARDUINO_PIN_21,
184 #elif ARDUINO_PIN_LAST > 21
185  GPIO_UNDEF,
186 #endif
187 #ifdef ARDUINO_PIN_22
189 #elif ARDUINO_PIN_LAST > 22
190  GPIO_UNDEF,
191 #endif
192 #ifdef ARDUINO_PIN_23
193  ARDUINO_PIN_23,
194 #elif ARDUINO_PIN_LAST > 23
195  GPIO_UNDEF,
196 #endif
197 #ifdef ARDUINO_PIN_24
198  ARDUINO_PIN_24,
199 #elif ARDUINO_PIN_LAST > 24
200  GPIO_UNDEF,
201 #endif
202 #ifdef ARDUINO_PIN_25
204 #elif ARDUINO_PIN_LAST > 25
205  GPIO_UNDEF,
206 #endif
207 #ifdef ARDUINO_PIN_26
209 #elif ARDUINO_PIN_LAST > 26
210  GPIO_UNDEF,
211 #endif
212 #ifdef ARDUINO_PIN_27
214 #elif ARDUINO_PIN_LAST > 27
215  GPIO_UNDEF,
216 #endif
217 #ifdef ARDUINO_PIN_28
219 #elif ARDUINO_PIN_LAST > 28
220  GPIO_UNDEF,
221 #endif
222 #ifdef ARDUINO_PIN_29
223  ARDUINO_PIN_29,
224 #elif ARDUINO_PIN_LAST > 29
225  GPIO_UNDEF,
226 #endif
227 #ifdef ARDUINO_PIN_30
228  ARDUINO_PIN_30,
229 #elif ARDUINO_PIN_LAST > 30
230  GPIO_UNDEF,
231 #endif
232 #ifdef ARDUINO_PIN_31
233  ARDUINO_PIN_31,
234 #elif ARDUINO_PIN_LAST > 31
235  GPIO_UNDEF,
236 #endif
237 #ifdef ARDUINO_PIN_32
238  ARDUINO_PIN_32,
239 #elif ARDUINO_PIN_LAST > 32
240  GPIO_UNDEF,
241 #endif
242 #ifdef ARDUINO_PIN_33
243  ARDUINO_PIN_33,
244 #elif ARDUINO_PIN_LAST > 33
245  GPIO_UNDEF,
246 #endif
247 #ifdef ARDUINO_PIN_34
248  ARDUINO_PIN_34,
249 #elif ARDUINO_PIN_LAST > 34
250  GPIO_UNDEF,
251 #endif
252 #ifdef ARDUINO_PIN_35
253  ARDUINO_PIN_35,
254 #elif ARDUINO_PIN_LAST > 35
255  GPIO_UNDEF,
256 #endif
257 #ifdef ARDUINO_PIN_36
258  ARDUINO_PIN_36,
259 #elif ARDUINO_PIN_LAST > 36
260  GPIO_UNDEF,
261 #endif
262 #ifdef ARDUINO_PIN_37
263  ARDUINO_PIN_37,
264 #elif ARDUINO_PIN_LAST > 37
265  GPIO_UNDEF,
266 #endif
267 #ifdef ARDUINO_PIN_38
268  ARDUINO_PIN_38,
269 #elif ARDUINO_PIN_LAST > 38
270  GPIO_UNDEF,
271 #endif
272 #ifdef ARDUINO_PIN_39
273  ARDUINO_PIN_39,
274 #elif ARDUINO_PIN_LAST > 39
275  GPIO_UNDEF,
276 #endif
277 #ifdef ARDUINO_PIN_40
278  ARDUINO_PIN_40,
279 #elif ARDUINO_PIN_LAST > 40
280  GPIO_UNDEF,
281 #endif
282 #ifdef ARDUINO_PIN_41
283  ARDUINO_PIN_41,
284 #elif ARDUINO_PIN_LAST > 41
285  GPIO_UNDEF,
286 #endif
287 #ifdef ARDUINO_PIN_42
288  ARDUINO_PIN_42,
289 #elif ARDUINO_PIN_LAST > 42
290  GPIO_UNDEF,
291 #endif
292 #ifdef ARDUINO_PIN_43
293  ARDUINO_PIN_43,
294 #elif ARDUINO_PIN_LAST > 43
295  GPIO_UNDEF,
296 #endif
297 #ifdef ARDUINO_PIN_44
298  ARDUINO_PIN_44,
299 #elif ARDUINO_PIN_LAST > 44
300  GPIO_UNDEF,
301 #endif
302 #ifdef ARDUINO_PIN_45
303  ARDUINO_PIN_45,
304 #elif ARDUINO_PIN_LAST > 45
305  GPIO_UNDEF,
306 #endif
307 #ifdef ARDUINO_PIN_46
308  ARDUINO_PIN_46,
309 #elif ARDUINO_PIN_LAST > 46
310  GPIO_UNDEF,
311 #endif
312 #ifdef ARDUINO_PIN_47
313  ARDUINO_PIN_47,
314 #elif ARDUINO_PIN_LAST > 47
315  GPIO_UNDEF,
316 #endif
317 #ifdef ARDUINO_PIN_48
318  ARDUINO_PIN_48,
319 #elif ARDUINO_PIN_LAST > 48
320  GPIO_UNDEF,
321 #endif
322 #ifdef ARDUINO_PIN_49
323  ARDUINO_PIN_49,
324 #elif ARDUINO_PIN_LAST > 49
325  GPIO_UNDEF,
326 #endif
327 #ifdef ARDUINO_PIN_50
328  ARDUINO_PIN_50,
329 #elif ARDUINO_PIN_LAST > 50
330  GPIO_UNDEF,
331 #endif
332 #ifdef ARDUINO_PIN_51
333  ARDUINO_PIN_51,
334 #elif ARDUINO_PIN_LAST > 51
335  GPIO_UNDEF,
336 #endif
337 #ifdef ARDUINO_PIN_52
338  ARDUINO_PIN_52,
339 #elif ARDUINO_PIN_LAST > 52
340  GPIO_UNDEF,
341 #endif
342 #ifdef ARDUINO_PIN_53
343  ARDUINO_PIN_53,
344 #elif ARDUINO_PIN_LAST > 53
345  GPIO_UNDEF,
346 #endif
347 #ifdef ARDUINO_PIN_54
348  ARDUINO_PIN_54,
349 #elif ARDUINO_PIN_LAST > 54
350  GPIO_UNDEF,
351 #endif
352 #ifdef ARDUINO_PIN_55
353  ARDUINO_PIN_55,
354 #elif ARDUINO_PIN_LAST > 55
355  GPIO_UNDEF,
356 #endif
357 #ifdef ARDUINO_PIN_56
358  ARDUINO_PIN_56,
359 #elif ARDUINO_PIN_LAST > 56
360  GPIO_UNDEF,
361 #endif
362 #ifdef ARDUINO_PIN_57
363  ARDUINO_PIN_57,
364 #elif ARDUINO_PIN_LAST > 57
365  GPIO_UNDEF,
366 #endif
367 #ifdef ARDUINO_PIN_58
368  ARDUINO_PIN_58,
369 #elif ARDUINO_PIN_LAST > 58
370  GPIO_UNDEF,
371 #endif
372 #ifdef ARDUINO_PIN_59
373  ARDUINO_PIN_59,
374 #elif ARDUINO_PIN_LAST > 59
375  GPIO_UNDEF,
376 #endif
377 #ifdef ARDUINO_PIN_60
378  ARDUINO_PIN_60,
379 #elif ARDUINO_PIN_LAST > 60
380  GPIO_UNDEF,
381 #endif
382 #ifdef ARDUINO_PIN_61
383  ARDUINO_PIN_61,
384 #elif ARDUINO_PIN_LAST > 61
385  GPIO_UNDEF,
386 #endif
387 #ifdef ARDUINO_PIN_62
388  ARDUINO_PIN_62,
389 #elif ARDUINO_PIN_LAST > 62
390  GPIO_UNDEF,
391 #endif
392 #ifdef ARDUINO_PIN_63
393  ARDUINO_PIN_63,
394 #elif ARDUINO_PIN_LAST > 63
395  GPIO_UNDEF,
396 #endif
397 #ifdef ARDUINO_PIN_64
398  ARDUINO_PIN_64,
399 #elif ARDUINO_PIN_LAST > 64
400  GPIO_UNDEF,
401 #endif
402 #ifdef ARDUINO_PIN_65
403  ARDUINO_PIN_65,
404 #elif ARDUINO_PIN_LAST > 65
405  GPIO_UNDEF,
406 #endif
407 #ifdef ARDUINO_PIN_66
408  ARDUINO_PIN_66,
409 #elif ARDUINO_PIN_LAST > 66
410  GPIO_UNDEF,
411 #endif
412 #ifdef ARDUINO_PIN_67
413  ARDUINO_PIN_67,
414 #elif ARDUINO_PIN_LAST > 67
415  GPIO_UNDEF,
416 #endif
417 #ifdef ARDUINO_PIN_68
418  ARDUINO_PIN_68,
419 #elif ARDUINO_PIN_LAST > 68
420  GPIO_UNDEF,
421 #endif
422 #ifdef ARDUINO_PIN_69
423  ARDUINO_PIN_69,
424 #elif ARDUINO_PIN_LAST > 69
425  GPIO_UNDEF,
426 #endif
427 #endif /* DOXYGEN */
428 };
429 
430 #ifdef __cplusplus
431 }
432 #endif
433 
static const gpio_t arduino_pinmap[]
Look-up table for the Arduino's digital pins:
#define GPIO_UNDEF
Definition of a fitting UNDEF value.
#define ARDUINO_PIN_22
D22 (SPI MISO)
Definition: arduino_iomap.h:54
Low-level GPIO peripheral driver interface definitions.
#define ARDUINO_PIN_27
SPI2_MOSI from MCU.
Definition: arduino_iomap.h:60
#define ARDUINO_PIN_26
SPI2_MISO from MCU.
Definition: arduino_iomap.h:59
#define ARDUINO_PIN_28
Unavailable;Suspended treatment.
Definition: arduino_iomap.h:61
#define ARDUINO_PIN_25
SPI2_NSS from MCU.
Definition: arduino_iomap.h:58