1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#[macro_export]
macro_rules! pin {
($gpio:ident, none) => { () };
($gpio:ident, spi0_sck) => { $gpio.pin5 };
($gpio:ident, spi0_mosi) => { $gpio.pin3 };
($gpio:ident, spi0_miso) => { $gpio.pin4 };
($gpio:ident, spi0_ss0) => { $gpio.pin2 };
($gpio:ident, spi0_ss2) => { $gpio.pin9 };
($gpio:ident, spi0_ss3) => { $gpio.pin10 };
($gpio:ident, i2c0_sda) => { $gpio.pin12 };
($gpio:ident, i2c0_scl) => { $gpio.pin13 };
($gpio:ident, uart0_tx) => { $gpio.pin17 };
($gpio:ident, uart0_rx) => { $gpio.pin16 };
($gpio:ident, dig0) => { $gpio.pin16 };
($gpio:ident, dig1) => { $gpio.pin17 };
($gpio:ident, dig2) => { $gpio.pin18 };
($gpio:ident, dig3) => { $gpio.pin19 };
($gpio:ident, dig4) => { $gpio.pin20 };
($gpio:ident, dig5) => { $gpio.pin21 };
($gpio:ident, dig6) => { $gpio.pin22 };
($gpio:ident, dig7) => { $gpio.pin23 };
($gpio:ident, dig8) => { $gpio.pin0 };
($gpio:ident, dig9) => { $gpio.pin1 };
($gpio:ident, dig10) => { $gpio.pin2 };
($gpio:ident, dig11) => { $gpio.pin3 };
($gpio:ident, dig12) => { $gpio.pin4 };
($gpio:ident, dig13) => { $gpio.pin5 };
($gpio:ident, dig14) => { $gpio.pin8 };
($gpio:ident, dig15) => { $gpio.pin9 };
($gpio:ident, dig16) => { $gpio.pin10 };
($gpio:ident, dig17) => { $gpio.pin11 };
($gpio:ident, dig18) => { $gpio.pin12 };
($gpio:ident, dig19) => { $gpio.pin13 };
($gpio:ident, led_red) => { $gpio.pin22 };
($gpio:ident, led_green) => { $gpio.pin19 };
($gpio:ident, led_blue) => { $gpio.pin21 };
}
#[macro_export]
macro_rules! pins {
( $gpio:ident, ($($name:ident),+) ) => {
($($crate::pin!($gpio, $name)),+)
}
}