@@ -51,116 +51,170 @@ enum {
51
51
};
52
52
53
53
// Arduino analog pins
54
- #ifndef NUM_ANALOG_INPUTS
55
- #define NUM_ANALOG_INPUTS 0
56
- #endif
57
- #ifndef NUM_ANALOG_FIRST
58
- #define NUM_ANALOG_FIRST NUM_DIGITAL_PINS
59
- #endif
54
+ // If NUM_ANALOG_INPUTS is not defined there is no analog pins defined.
55
+ // Anyway ADC internal channels are always avaialable.
56
+ #if defined(NUM_ANALOG_INPUTS ) && (NUM_ANALOG_INPUTS > 0 )
60
57
58
+ // If NUM_ANALOG_FIRST is defined, analog pins are defined contiguous
59
+ // and defined hereafter
60
+ #ifdef NUM_ANALOG_FIRST
61
61
// Analog pins must be contiguous to be able to loop on each value
62
62
#define MAX_ANALOG_INPUTS 24
63
63
_Static_assert (NUM_ANALOG_INPUTS <= MAX_ANALOG_INPUTS ,
64
64
"Core NUM_ANALOG_INPUTS limited to MAX_ANALOG_INPUTS" );
65
65
_Static_assert (NUM_ANALOG_FIRST >= NUM_ANALOG_INPUTS ,
66
66
"First analog pin value (A0) must be greater than or equal to NUM_ANALOG_INPUTS" );
67
+ #endif /* NUM_ANALOG_FIRST */
67
68
68
69
#if NUM_ANALOG_INPUTS > 0
70
+ #ifndef PIN_A0
69
71
#define PIN_A0 NUM_ANALOG_FIRST
72
+ #endif
70
73
static const uint8_t A0 = PIN_A0 ;
71
74
#endif
72
75
#if NUM_ANALOG_INPUTS > 1
76
+ #ifndef PIN_A1
73
77
#define PIN_A1 (PIN_A0 + 1)
78
+ #endif
74
79
static const uint8_t A1 = PIN_A1 ;
75
80
#endif
76
81
#if NUM_ANALOG_INPUTS > 2
82
+ #ifndef PIN_A2
77
83
#define PIN_A2 (PIN_A1 + 1)
84
+ #endif
78
85
static const uint8_t A2 = PIN_A2 ;
79
86
#endif
80
87
#if NUM_ANALOG_INPUTS > 3
88
+ #ifndef PIN_A3
81
89
#define PIN_A3 (PIN_A2 + 1)
90
+ #endif
82
91
static const uint8_t A3 = PIN_A3 ;
83
92
#endif
84
93
#if NUM_ANALOG_INPUTS > 4
94
+ #ifndef PIN_A4
85
95
#define PIN_A4 (PIN_A3 + 1)
96
+ #endif
86
97
static const uint8_t A4 = PIN_A4 ;
87
98
#endif
88
99
#if NUM_ANALOG_INPUTS > 5
100
+ #ifndef PIN_A5
89
101
#define PIN_A5 (PIN_A4 + 1)
102
+ #endif
90
103
static const uint8_t A5 = PIN_A5 ;
91
104
#endif
92
105
#if NUM_ANALOG_INPUTS > 6
106
+ #ifndef PIN_A6
93
107
#define PIN_A6 (PIN_A5 + 1)
108
+ #endif
94
109
static const uint8_t A6 = PIN_A6 ;
95
110
#endif
96
111
#if NUM_ANALOG_INPUTS > 7
112
+ #ifndef PIN_A7
97
113
#define PIN_A7 (PIN_A6 + 1)
114
+ #endif
98
115
static const uint8_t A7 = PIN_A7 ;
99
116
#endif
100
117
#if NUM_ANALOG_INPUTS > 8
118
+ #ifndef PIN_A8
101
119
#define PIN_A8 (PIN_A7 + 1)
120
+ #endif
102
121
static const uint8_t A8 = PIN_A8 ;
103
122
#endif
104
123
#if NUM_ANALOG_INPUTS > 9
124
+ #ifndef PIN_A9
105
125
#define PIN_A9 (PIN_A8 + 1)
126
+ #endif
106
127
static const uint8_t A9 = PIN_A9 ;
107
128
#endif
108
129
#if NUM_ANALOG_INPUTS > 10
130
+ #ifndef PIN_A10
109
131
#define PIN_A10 (PIN_A9 + 1)
132
+ #endif
110
133
static const uint8_t A10 = PIN_A10 ;
111
134
#endif
112
135
#if NUM_ANALOG_INPUTS > 11
136
+ #ifndef PIN_A11
113
137
#define PIN_A11 (PIN_A10 + 1)
138
+ #endif
114
139
static const uint8_t A11 = PIN_A11 ;
115
140
#endif
116
141
#if NUM_ANALOG_INPUTS > 12
142
+ #ifndef PIN_A12
117
143
#define PIN_A12 (PIN_A11 + 1)
144
+ #endif
118
145
static const uint8_t A12 = PIN_A12 ;
119
146
#endif
120
147
#if NUM_ANALOG_INPUTS > 13
148
+ #ifndef PIN_A13
121
149
#define PIN_A13 (PIN_A12 + 1)
150
+ #endif
122
151
static const uint8_t A13 = PIN_A13 ;
123
152
#endif
124
153
#if NUM_ANALOG_INPUTS > 14
154
+ #ifndef PIN_A14
125
155
#define PIN_A14 (PIN_A13 + 1)
156
+ #endif
126
157
static const uint8_t A14 = PIN_A14 ;
127
158
#endif
128
159
#if NUM_ANALOG_INPUTS > 15
160
+ #ifndef PIN_A15
129
161
#define PIN_A15 (PIN_A14 + 1)
162
+ #endif
130
163
static const uint8_t A15 = PIN_A15 ;
131
164
#endif
132
165
#if NUM_ANALOG_INPUTS > 16
166
+ #ifndef PIN_A16
133
167
#define PIN_A16 (PIN_A15 + 1)
168
+ #endif
134
169
static const uint8_t A16 = PIN_A16 ;
135
170
#endif
136
171
#if NUM_ANALOG_INPUTS > 17
172
+ #ifndef PIN_A17
137
173
#define PIN_A17 (PIN_A16 + 1)
174
+ #endif
138
175
static const uint8_t A17 = PIN_A17 ;
139
176
#endif
140
177
#if NUM_ANALOG_INPUTS > 18
178
+ #ifndef PIN_A18
141
179
#define PIN_A18 (PIN_A17 + 1)
180
+ #endif
142
181
static const uint8_t A18 = PIN_A18 ;
143
182
#endif
144
183
#if NUM_ANALOG_INPUTS > 19
184
+ #ifndef PIN_A19
145
185
#define PIN_A19 (PIN_A18 + 1)
186
+ #endif
146
187
static const uint8_t A19 = PIN_A19 ;
147
188
#endif
148
189
#if NUM_ANALOG_INPUTS > 20
190
+ #ifndef PIN_A20
149
191
#define PIN_A20 (PIN_A19 + 1)
192
+ #endif
150
193
static const uint8_t A20 = PIN_A20 ;
151
194
#endif
152
195
#if NUM_ANALOG_INPUTS > 21
196
+ #ifndef PIN_A21
153
197
#define PIN_A21 (PIN_A20 + 1)
198
+ #endif
154
199
static const uint8_t A21 = PIN_A21 ;
155
200
#endif
156
201
#if NUM_ANALOG_INPUTS > 22
202
+ #ifndef PIN_A22
157
203
#define PIN_A22 (PIN_A21 + 1)
204
+ #endif
158
205
static const uint8_t A22 = PIN_A22 ;
159
206
#endif
160
207
#if NUM_ANALOG_INPUTS > 23
208
+ #ifndef PIN_A23
161
209
#define PIN_A23 (PIN_A22 + 1)
210
+ #endif
162
211
static const uint8_t A23 = PIN_A23 ;
163
212
#endif
213
+ #else
214
+ #ifndef NUM_ANALOG_INPUTS
215
+ #define NUM_ANALOG_INPUTS 0
216
+ #endif
217
+ #endif /* NUM_ANALOG_INPUTS */
164
218
165
219
// Default for Arduino connector compatibility
166
220
// SPI Definitions
@@ -236,10 +290,15 @@ uint32_t pinNametoDigitalPin(PinName p);
236
290
// Convert an analog pin number to a digital pin number
237
291
#if defined(NUM_ANALOG_INPUTS ) && (NUM_ANALOG_INPUTS > 0 )
238
292
// Used by analogRead api to have A0 == 0
293
+ #ifndef analogInputToDigitalPin
294
+ // Default one for contiguous analog pins definition
239
295
#define analogInputToDigitalPin (p ) (((uint32_t)p < NUM_ANALOG_INPUTS) ? (p+A0) : p)
296
+ #endif
240
297
#else
298
+ // No analog pin defined
241
299
#define analogInputToDigitalPin (p ) (NUM_DIGITAL_PINS)
242
300
#endif
301
+
243
302
// Convert an analog pin number Axx to a PinName PX_n
244
303
PinName analogInputToPinName (uint32_t pin );
245
304
0 commit comments