@@ -51,8 +51,8 @@ static const uint8_t MOSI = PIN_SPI_MOSI;
51
51
static const uint8_t MISO = PIN_SPI_MISO ;
52
52
static const uint8_t SCK = PIN_SPI_SCK ;
53
53
54
- #define PIN_WIRE_SDA (20 )
55
- #define PIN_WIRE_SCL (21 )
54
+ #define PIN_WIRE_SDA (22 )
55
+ #define PIN_WIRE_SCL (23 )
56
56
57
57
static const uint8_t SDA = PIN_WIRE_SDA ;
58
58
static const uint8_t SCL = PIN_WIRE_SCL ;
@@ -89,14 +89,14 @@ static const uint8_t SCL = PIN_WIRE_SCL;
89
89
90
90
#define LED_BUILTIN (13)
91
91
92
- #define PIN_A0 (0 ) // AIN3
93
- #define PIN_A1 (1 ) // AIN2
94
- #define PIN_A2 (2 ) // AIN1
95
- #define PIN_A3 (3 ) // AIN0
96
- #define PIN_A4 (4 ) // PF2 / AIN12
97
- #define PIN_A5 (5 ) // PF3 / AIN13
98
- #define PIN_A6 (6 ) // AIN5
99
- #define PIN_A7 (7 ) // AIN4
92
+ #define PIN_A0 (14 ) // AIN3
93
+ #define PIN_A1 (15 ) // AIN2
94
+ #define PIN_A2 (16 ) // AIN1
95
+ #define PIN_A3 (17 ) // AIN0
96
+ #define PIN_A4 (18 ) // PF2 / AIN12
97
+ #define PIN_A5 (19 ) // PF3 / AIN13
98
+ #define PIN_A6 (20 ) // AIN5
99
+ #define PIN_A7 (21 ) // AIN4
100
100
101
101
static const uint8_t A0 = PIN_A0 ;
102
102
static const uint8_t A1 = PIN_A1 ;
@@ -157,33 +157,16 @@ const uint8_t PROGMEM digital_pin_to_port[] = {
157
157
PE , // 11 PE0
158
158
PE , // 12 PE1
159
159
PE , // 13 PE2
160
- PD , // 14 PD0/AI0
161
- PD , // 15 PD1AI1
162
- PD , // 16 PD2/AI2
163
- PD , // 17 PD3/AI3
164
- PD , // 18 PD4/AI4
165
- PD , // 19 PD5/AI5
166
- PA , // 20 PA2/TWI_SDA
167
- PA , // 21 PA3/TWI_SCL
168
- PC , // 22 PC3
169
- PA , // 23 PA5/NINA TX
170
- PA , // 24 PA4/NINA RX
171
- PD , // 25 PD6/LED_BUILTIN
172
- PB , // 26 PB5/USART3_Rx
173
- PB , // 27 PB4/USART3_Tx
174
- PA , // 28 PA6/NINA GPIO0
175
- PA , // 29 PA7/NINA RST
176
- PB , // 30 PB3/IMU CS
177
- PC , // 31 PC7/IMU INT
178
- PC , // 32 PC0/MOSI
179
- PC , // 33 PC1/MISO
180
- PC , // 34 PC2/SCK
181
- PF , // 35 PF2/NINA CS
182
- PF , // 36 PF3/NINA ACK
183
- PF , // 37 PF0 TOSC 1
184
- PF , // 38 PF1 TOSC 2
185
- PD , // 39 PD7 VREF
186
- PF // 40 PF6 RESET
160
+ PD , // 14 PD3/AI3
161
+ PD , // 15 PD2/AI2
162
+ PD , // 16 PD1/AI1
163
+ PD , // 17 PD0/AI0
164
+ PF , // 18 PF2/AI12
165
+ PF , // 19 PF3/AI13
166
+ PD , // 20 PD5/AI5
167
+ PD , // 21 PD4/AI4
168
+ PA , // 22 PA2/TWI_SDA
169
+ PA , // 23 PA3/TWI_SCL
187
170
};
188
171
189
172
/* Use this for accessing PINnCTRL register */
@@ -202,33 +185,16 @@ const uint8_t PROGMEM digital_pin_to_bit_position[] = {
202
185
PIN0_bp , // 11 PE0
203
186
PIN1_bp , // 12 PE1
204
187
PIN2_bp , // 13 PE2
205
- PIN0_bp , // 14 PD0/AI0
206
- PIN1_bp , // 15 PD1AI1
207
- PIN2_bp , // 16 PD2/AI2
208
- PIN3_bp , // 17 PD3/AI3
209
- PIN4_bp , // 18 PD4/AI4
210
- PIN5_bp , // 19 PD5/AI5
211
- PIN2_bp , // 20 PA2/TWI_SDA
212
- PIN3_bp , // 21 PA3/TWI_SCL
213
- PIN3_bp , // 22 PC3
214
- PIN5_bp , // 23 PA5/NINA TX
215
- PIN4_bp , // 24 PA4/NINA RX
216
- PIN6_bp , // 25 PD6/LED_BUILTIN
217
- PIN5_bp , // 26 PB5/USART3_Rx
218
- PIN4_bp , // 27 PB4/USART3_Tx
219
- PIN6_bp , // 28 PA6/NINA GPIO0
220
- PIN7_bp , // 29 PA7/NINA RST
221
- PIN3_bp , // 30 PB3/IMU CS
222
- PIN7_bp , // 31 PC7/IMU INT
223
- PIN0_bp , // 32 PC0/MOSI
224
- PIN1_bp , // 33 PC1/MISO
225
- PIN2_bp , // 34 PC2/SCK
226
- PIN2_bp , // 35 PF2/NINA CS
227
- PIN3_bp , // 36 PF3/NINA ACK
228
- PIN0_bp , // 37 PF0 TOSC 1
229
- PIN1_bp , // 38 PF1 TOSC 2
230
- PIN7_bp , // 39 PD7 VREF
231
- PIN6_bp // 40 PF6 RESET
188
+ PIN3_bp , // 14 PD3/AI3
189
+ PIN2_bp , // 15 PD2/AI2
190
+ PIN1_bp , // 16 PD1/AI1
191
+ PIN0_bp , // 17 PD0/AI0
192
+ PIN2_bp , // 18 PF2/AI12
193
+ PIN3_bp , // 19 PF3/AI13
194
+ PIN5_bp , // 20 PD5/AI5
195
+ PIN4_bp , // 21 PD4/AI4
196
+ PIN2_bp , // 22 PA2/TWI_SDA
197
+ PIN3_bp , // 23 PA3/TWI_SCL
232
198
};
233
199
234
200
/* Use this for accessing PINnCTRL register */
@@ -247,33 +213,16 @@ const uint8_t PROGMEM digital_pin_to_bit_mask[] = {
247
213
PIN0_bm , // 11 PE0
248
214
PIN1_bm , // 12 PE1
249
215
PIN2_bm , // 13 PE2
250
- PIN0_bm , // 14 PD0/AI0
251
- PIN1_bm , // 15 PD1AI1
252
- PIN2_bm , // 16 PD2/AI2
253
- PIN3_bm , // 17 PD3/AI3
254
- PIN4_bm , // 18 PD4/AI4
255
- PIN5_bm , // 19 PD5/AI5
256
- PIN2_bm , // 20 PA2/TWI_SDA
257
- PIN3_bm , // 21 PA3/TWI_SCL
258
- PIN3_bm , // 22 PC3
259
- PIN5_bm , // 23 PA5/NINA TX
260
- PIN4_bm , // 24 PA4/NINA RX
261
- PIN6_bm , // 25 PD6/LED_BUILTIN
262
- PIN5_bm , // 26 PB5/USART3_Rx
263
- PIN4_bm , // 27 PB4/USART3_Tx
264
- PIN6_bm , // 28 PA6/NINA GPIO0
265
- PIN7_bm , // 29 PA7/NINA RST
266
- PIN3_bm , // 30 PB3/IMU CS
267
- PIN7_bm , // 31 PC7/IMU INT
268
- PIN0_bm , // 32 PC0/MOSI
269
- PIN1_bm , // 33 PC1/MISO
270
- PIN2_bm , // 34 PC2/SCK
271
- PIN2_bm , // 35 PF2/NINA CS
272
- PIN3_bm , // 36 PF3/NINA ACK
273
- PIN0_bm , // 37 PF0 TOSC 1
274
- PIN1_bm , // 38 PF1 TOSC 2
275
- PIN7_bm , // 39 PD7 VREF
276
- PIN6_bm // 40 PF6 RESET
216
+ PIN3_bm , // 14 PD3/AI3
217
+ PIN2_bm , // 15 PD2/AI2
218
+ PIN1_bm , // 16 PD1/AI1
219
+ PIN0_bm , // 17 PD0/AI0
220
+ PIN2_bm , // 18 PF2/AI12
221
+ PIN3_bm , // 19 PF3/AI13
222
+ PIN5_bm , // 20 PD5/AI5
223
+ PIN4_bm , // 21 PD4/AI4
224
+ PIN2_bm , // 22 PA2/TWI_SDA
225
+ PIN3_bm , // 23 PA3/TWI_SCL
277
226
};
278
227
279
228
const uint8_t PROGMEM digital_pin_to_timer [] = {
@@ -291,33 +240,16 @@ const uint8_t PROGMEM digital_pin_to_timer[] = {
291
240
NOT_ON_TIMER , // 11 PE0
292
241
NOT_ON_TIMER , // 12 PE1
293
242
NOT_ON_TIMER , // 13 PE2
294
- NOT_ON_TIMER , // 14 PD0/AI0
295
- NOT_ON_TIMER , // 15 PD1AI1
296
- NOT_ON_TIMER , // 16 PD2/AI2
297
- NOT_ON_TIMER , // 17 PD3/AI3
298
- NOT_ON_TIMER , // 18 PD4/AI4
299
- NOT_ON_TIMER , // 19 PD5/AI5
300
- NOT_ON_TIMER , // 20 PA2/TWI_SDA
301
- NOT_ON_TIMER , // 21 PA3/TWI_SCL
302
- NOT_ON_TIMER , // 22 PC3
303
- NOT_ON_TIMER , // 23 PA5/NINA TX
304
- NOT_ON_TIMER , // 24 PA4/NINA RX
305
- NOT_ON_TIMER , // 25 PD6/LED_BUILTIN
306
- NOT_ON_TIMER , // 26 PB5/USART3_Rx
307
- NOT_ON_TIMER , // 27 PB4/USART3_Tx
308
- NOT_ON_TIMER , // 28 PA6/NINA GPIO0
309
- NOT_ON_TIMER , // 29 PA7/NINA RST
310
- NOT_ON_TIMER , // 30 PB3/IMU CS
311
- NOT_ON_TIMER , // 31 PC7/IMU INT
312
- NOT_ON_TIMER , // 32 PC0/MOSI
313
- NOT_ON_TIMER , // 33 PC1/MISO
314
- NOT_ON_TIMER , // 34 PC2/SCK
315
- NOT_ON_TIMER , // 35 PF2/NINA CS
316
- NOT_ON_TIMER , // 36 PF3/NINA ACK
317
- NOT_ON_TIMER , // 37 PF0 TOSC 1
318
- NOT_ON_TIMER , // 38 PF1 TOSC 2
319
- NOT_ON_TIMER , // 39 PD7 VREF
320
- NOT_ON_TIMER // 40 PF6 RESET
243
+ NOT_ON_TIMER , // 14 PD3/AI3
244
+ NOT_ON_TIMER , // 15 PD2/AI2
245
+ NOT_ON_TIMER , // 16 PD1/AI1
246
+ NOT_ON_TIMER , // 17 PD0/AI0
247
+ NOT_ON_TIMER , // 18 PF2/AI12
248
+ NOT_ON_TIMER , // 19 PF3/AI13
249
+ NOT_ON_TIMER , // 20 PD5/AI5
250
+ NOT_ON_TIMER , // 21 PD4/AI4
251
+ NOT_ON_TIMER , // 22 PA2/TWI_SDA
252
+ NOT_ON_TIMER , // 23 PA3/TWI_SCL
321
253
};
322
254
323
255
const uint8_t PROGMEM analog_pin_to_channel [] = {
@@ -334,7 +266,7 @@ const uint8_t PROGMEM analog_pin_to_channel[] = {
334
266
#endif
335
267
336
268
extern const uint8_t analog_pin_to_channel [];
337
- #define digitalPinToAnalogInput (p ) ((p < NUM_ANALOG_INPUTS ) ? pgm_read_byte(analog_pin_to_channel + p) : NOT_A_PIN )
269
+ #define digitalPinToAnalogInput (p ) ((p < ANALOG_INPUT_OFFSET ) ? pgm_read_byte(analog_pin_to_channel + p) : pgm_read_byte(analog_pin_to_channel + p - ANALOG_INPUT_OFFSET) )
338
270
339
271
// These serial port names are intended to allow libraries and architecture-neutral
340
272
// sketches to automatically default to the correct port name for a particular type
0 commit comments