Skip to content

Commit 4b7b718

Browse files
committed
Merge branch 'encoders'
2 parents 769803f + 5361118 commit 4b7b718

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

69 files changed

+6580
-158
lines changed

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
11
.DS_Store
2-
release.sh

Boards.h

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ Firmata protocol and the actual pin numbers used by the Arduino
7272
functions. Even though such mappings are often simple, pin
7373
numbers received by Firmata protocol should always be used as
7474
input to these macros, and the result of the macro should be
75-
used with with any Arduino function.
75+
used with any Arduino function.
7676
7777
When Firmata is extended to support a new pin mode or feature,
7878
a pair of macros should be added and used for all hardware
@@ -144,6 +144,7 @@ writePort(port, value, bitmask): Write an 8 bit port.
144144
#define IS_PIN_SERVO(p) (IS_PIN_DIGITAL(p) && (p) - 2 < MAX_SERVOS)
145145
#define IS_PIN_I2C(p) ((p) == 18 || (p) == 19)
146146
#define IS_PIN_SPI(p) ((p) == SS || (p) == MOSI || (p) == MISO || (p) == SCK)
147+
#define IS_PIN_INTERRUPT(p) ((p)==2 || (p)==3)
147148
#define PIN_TO_DIGITAL(p) (p)
148149
#define PIN_TO_ANALOG(p) ((p) - 14)
149150
#define PIN_TO_PWM(p) PIN_TO_DIGITAL(p)
@@ -160,6 +161,7 @@ writePort(port, value, bitmask): Write an 8 bit port.
160161
#define IS_PIN_SERVO(p) ((p) >= 0 && (p) < MAX_SERVOS)
161162
#define IS_PIN_I2C(p) ((p) == SDA || (p) == SCL)
162163
#define IS_PIN_SPI(p) ((p) == SS || (p) == MOSI || (p) == MISO || (p) == SCK)
164+
#define IS_PIN_INTERRUPT(p) 0
163165
#define PIN_TO_DIGITAL(p) (p)
164166
#define PIN_TO_ANALOG(p) ((p) - FIRST_ANALOG_PIN)
165167
#define PIN_TO_PWM(p) PIN_TO_DIGITAL(p)
@@ -176,6 +178,7 @@ writePort(port, value, bitmask): Write an 8 bit port.
176178
#define IS_PIN_PWM(p) digitalPinHasPWM(p)
177179
#define IS_PIN_SERVO(p) (IS_PIN_DIGITAL(p) && (p) - 2 < MAX_SERVOS)
178180
#define IS_PIN_I2C(p) ((p) == 18 || (p) == 19)
181+
#define IS_PIN_INTERRUPT(p) ((p)==2 || (p)==3)
179182
#define PIN_TO_DIGITAL(p) (p)
180183
#define PIN_TO_ANALOG(p) ((p) - 14)
181184
#define PIN_TO_PWM(p) PIN_TO_DIGITAL(p)
@@ -194,6 +197,7 @@ writePort(port, value, bitmask): Write an 8 bit port.
194197
#define IS_PIN_SERVO(p) ((p) >= 2 && (p) - 2 < MAX_SERVOS)
195198
#define IS_PIN_I2C(p) ((p) == 20 || (p) == 21)
196199
#define IS_PIN_SPI(p) ((p) == SS || (p) == MOSI || (p) == MISO || (p) == SCK)
200+
#define IS_PIN_INTERRUPT(p) ((p)==2 || (p)==3 || (p)==18 || (p)==19 || (p)==20 || (p)==21)
197201
#define PIN_TO_DIGITAL(p) (p)
198202
#define PIN_TO_ANALOG(p) ((p) - 54)
199203
#define PIN_TO_PWM(p) PIN_TO_DIGITAL(p)
@@ -210,6 +214,7 @@ writePort(port, value, bitmask): Write an 8 bit port.
210214
#define IS_PIN_PWM(p) digitalPinHasPWM(p)
211215
#define IS_PIN_SERVO(p) ((p) >= 2 && (p) - 2 < MAX_SERVOS)
212216
#define IS_PIN_I2C(p) ((p) == 20 || (p) == 21) // 70 71
217+
#define IS_PIN_INTERRUPT(p) IS_PIN_DIGITAL(p)
213218
#define PIN_TO_DIGITAL(p) (p)
214219
#define PIN_TO_ANALOG(p) ((p) - 54)
215220
#define PIN_TO_PWM(p) PIN_TO_DIGITAL(p)
@@ -227,6 +232,7 @@ writePort(port, value, bitmask): Write an 8 bit port.
227232
#define IS_PIN_SERVO(p) ((p) >= 0 && (p) < MAX_SERVOS)
228233
#define IS_PIN_I2C(p) (0)
229234
#define IS_PIN_SPI(p) ((p) == SS || (p) == MOSI || (p) == MISO || (p) == SCK)
235+
#define IS_PIN_INTERRUPT(p) ((p) == 0 || (p) == 1 || (p) == 2 ||(p) == 3 || (p) == 4 || (p) == 6 ||(p) == 7 ||(p) == 16)
230236
#define PIN_TO_DIGITAL(p) (p)
231237
#define PIN_TO_ANALOG(p) (0)
232238
#define PIN_TO_PWM(p) PIN_TO_DIGITAL(p)
@@ -244,6 +250,7 @@ writePort(port, value, bitmask): Write an 8 bit port.
244250
#define IS_PIN_SERVO(p) ((p) >= 0 && (p) < MAX_SERVOS)
245251
#define IS_PIN_I2C(p) ((p) == 5 || (p) == 6)
246252
#define IS_PIN_SPI(p) ((p) == SS || (p) == MOSI || (p) == MISO || (p) == SCK)
253+
#define IS_PIN_INTERRUPT(p) ((p) == 5 || (p) == 6 || (p) == 7 || (p) == 8)
247254
#define PIN_TO_DIGITAL(p) (p)
248255
#define PIN_TO_ANALOG(p) (((p)<22)?21-(p):11)
249256
#define PIN_TO_PWM(p) PIN_TO_DIGITAL(p)
@@ -260,6 +267,7 @@ writePort(port, value, bitmask): Write an 8 bit port.
260267
#define IS_PIN_PWM(p) digitalPinHasPWM(p)
261268
#define IS_PIN_SERVO(p) ((p) >= 0 && (p) < MAX_SERVOS)
262269
#define IS_PIN_I2C(p) ((p) == 18 || (p) == 19)
270+
#define IS_PIN_INTERRUPT(p) IS_PIN_DIGITAL(p)
263271
#define PIN_TO_DIGITAL(p) (p)
264272
#define PIN_TO_ANALOG(p) (((p)<=23)?(p)-14:(p)-24)
265273
#define PIN_TO_PWM(p) PIN_TO_DIGITAL(p)
@@ -277,6 +285,7 @@ writePort(port, value, bitmask): Write an 8 bit port.
277285
#define IS_PIN_SERVO(p) ((p) >= 0 && (p) < MAX_SERVOS)
278286
#define IS_PIN_I2C(p) ((p) == 0 || (p) == 1)
279287
#define IS_PIN_SPI(p) ((p) == SS || (p) == MOSI || (p) == MISO || (p) == SCK)
288+
#define IS_PIN_INTERRUPT(p) ((p) == 0 || (p) == 1 || (p) == 2 ||(p) == 3 ||(p) == 18 ||(p) == 19 ||(p) == 36 ||(p) == 37)
280289
#define PIN_TO_DIGITAL(p) (p)
281290
#define PIN_TO_ANALOG(p) ((p) - 38)
282291
#define PIN_TO_PWM(p) PIN_TO_DIGITAL(p)
@@ -294,6 +303,7 @@ writePort(port, value, bitmask): Write an 8 bit port.
294303
#define IS_PIN_SERVO(p) ((p) >= 0 && (p) < MAX_SERVOS)
295304
#define IS_PIN_I2C(p) ((p) == 2 || (p) == 3)
296305
#define IS_PIN_SPI(p) ((p) == SS || (p) == MOSI || (p) == MISO || (p) == SCK)
306+
#define IS_PIN_INTERRUPT(p) ((p)==0 || (p)==1 || (p)==2 || (p)==3 || (p)==7)
297307
#define PIN_TO_DIGITAL(p) (p)
298308
#define PIN_TO_ANALOG(p) (p) - 18
299309
#define PIN_TO_PWM(p) PIN_TO_DIGITAL(p)
@@ -310,6 +320,7 @@ writePort(port, value, bitmask): Write an 8 bit port.
310320
#define IS_PIN_PWM(p) digitalPinHasPWM(p)
311321
#define IS_PIN_SERVO(p) ((p) >= 0 && (p) < MAX_SERVOS)
312322
#define IS_PIN_I2C(p) ((p) == 16 || (p) == 17)
323+
#define IS_PIN_INTERRUPT(p) ((p)==2 || (p)==10 || (p)==11)
313324
#define PIN_TO_DIGITAL(p) (p)
314325
#define PIN_TO_ANALOG(p) ((p) - 24)
315326
#define PIN_TO_PWM(p) PIN_TO_DIGITAL(p)
@@ -326,6 +337,7 @@ writePort(port, value, bitmask): Write an 8 bit port.
326337
#define IS_PIN_PWM(p) digitalPinHasPWM(p)
327338
#define IS_PIN_SERVO(p) ((p) >= 0 && (p) < MAX_SERVOS)
328339
#define IS_PIN_I2C(p) ((p) == 4 || (p) == 5)
340+
#define IS_PIN_INTERRUPT(p) (0)
329341
#define PIN_TO_DIGITAL(p) (p)
330342
#define PIN_TO_ANALOG(p) ((p) - 36)
331343
#define PIN_TO_PWM(p) PIN_TO_DIGITAL(p)
@@ -338,8 +350,8 @@ writePort(port, value, bitmask): Write an 8 bit port.
338350
#endif
339351

340352
// as long this is not defined for all boards:
341-
#ifndef IS_PIN_SPI(p)
342-
#define IS_PIN_SPI(p) 0
353+
#ifndef IS_PIN_SPI
354+
#define IS_PIN_SPI(p) (0)
343355
#endif
344356

345357
/*==============================================================================
@@ -400,6 +412,7 @@ static inline unsigned char writePort(byte port, byte value, byte bitmask)
400412
PORTC = (PORTC & maskC) | valC;
401413
sei();
402414
}
415+
return 1;
403416
#else
404417
byte pin=port*8;
405418
if ((bitmask & 0x01)) digitalWrite(PIN_TO_DIGITAL(pin+0), (value & 0x01));
@@ -410,6 +423,7 @@ static inline unsigned char writePort(byte port, byte value, byte bitmask)
410423
if ((bitmask & 0x20)) digitalWrite(PIN_TO_DIGITAL(pin+5), (value & 0x20));
411424
if ((bitmask & 0x40)) digitalWrite(PIN_TO_DIGITAL(pin+6), (value & 0x40));
412425
if ((bitmask & 0x80)) digitalWrite(PIN_TO_DIGITAL(pin+7), (value & 0x80));
426+
return 1;
413427
#endif
414428
}
415429

0 commit comments

Comments
 (0)