Skip to content

Commit 046beff

Browse files
Merge pull request firmata#33 from ntruchsess/spi
add IS_PIN_SPI(p) to Boards.h
2 parents 9d13e0b + 6de2d8c commit 046beff

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

Boards.h

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,7 @@ writePort(port, value, bitmask): Write an 8 bit port.
143143
#define IS_PIN_PWM(p) digitalPinHasPWM(p)
144144
#define IS_PIN_SERVO(p) (IS_PIN_DIGITAL(p) && (p) - 2 < MAX_SERVOS)
145145
#define IS_PIN_I2C(p) ((p) == 18 || (p) == 19)
146+
#define IS_PIN_SPI(p) ((p) == SS || (p) == MOSI || (p) == MISO || (p) == SCK)
146147
#define PIN_TO_DIGITAL(p) (p)
147148
#define PIN_TO_ANALOG(p) ((p) - 14)
148149
#define PIN_TO_PWM(p) PIN_TO_DIGITAL(p)
@@ -158,6 +159,7 @@ writePort(port, value, bitmask): Write an 8 bit port.
158159
#define IS_PIN_PWM(p) digitalPinHasPWM(p)
159160
#define IS_PIN_SERVO(p) ((p) >= 0 && (p) < MAX_SERVOS)
160161
#define IS_PIN_I2C(p) ((p) == SDA || (p) == SCL)
162+
#define IS_PIN_SPI(p) ((p) == SS || (p) == MOSI || (p) == MISO || (p) == SCK)
161163
#define PIN_TO_DIGITAL(p) (p)
162164
#define PIN_TO_ANALOG(p) ((p) - FIRST_ANALOG_PIN)
163165
#define PIN_TO_PWM(p) PIN_TO_DIGITAL(p)
@@ -191,6 +193,7 @@ writePort(port, value, bitmask): Write an 8 bit port.
191193
#define IS_PIN_PWM(p) digitalPinHasPWM(p)
192194
#define IS_PIN_SERVO(p) ((p) >= 2 && (p) - 2 < MAX_SERVOS)
193195
#define IS_PIN_I2C(p) ((p) == 20 || (p) == 21)
196+
#define IS_PIN_SPI(p) ((p) == SS || (p) == MOSI || (p) == MISO || (p) == SCK)
194197
#define PIN_TO_DIGITAL(p) (p)
195198
#define PIN_TO_ANALOG(p) ((p) - 54)
196199
#define PIN_TO_PWM(p) PIN_TO_DIGITAL(p)
@@ -207,6 +210,7 @@ writePort(port, value, bitmask): Write an 8 bit port.
207210
#define IS_PIN_PWM(p) digitalPinHasPWM(p)
208211
#define IS_PIN_SERVO(p) ((p) >= 0 && (p) < MAX_SERVOS)
209212
#define IS_PIN_I2C(p) (0)
213+
#define IS_PIN_SPI(p) ((p) == SS || (p) == MOSI || (p) == MISO || (p) == SCK)
210214
#define PIN_TO_DIGITAL(p) (p)
211215
#define PIN_TO_ANALOG(p) (0)
212216
#define PIN_TO_PWM(p) PIN_TO_DIGITAL(p)
@@ -223,6 +227,7 @@ writePort(port, value, bitmask): Write an 8 bit port.
223227
#define IS_PIN_PWM(p) digitalPinHasPWM(p)
224228
#define IS_PIN_SERVO(p) ((p) >= 0 && (p) < MAX_SERVOS)
225229
#define IS_PIN_I2C(p) ((p) == 5 || (p) == 6)
230+
#define IS_PIN_SPI(p) ((p) == SS || (p) == MOSI || (p) == MISO || (p) == SCK)
226231
#define PIN_TO_DIGITAL(p) (p)
227232
#define PIN_TO_ANALOG(p) (((p)<22)?21-(p):11)
228233
#define PIN_TO_PWM(p) PIN_TO_DIGITAL(p)
@@ -239,6 +244,7 @@ writePort(port, value, bitmask): Write an 8 bit port.
239244
#define IS_PIN_PWM(p) digitalPinHasPWM(p)
240245
#define IS_PIN_SERVO(p) ((p) >= 0 && (p) < MAX_SERVOS)
241246
#define IS_PIN_I2C(p) ((p) == 0 || (p) == 1)
247+
#define IS_PIN_SPI(p) ((p) == SS || (p) == MOSI || (p) == MISO || (p) == SCK)
242248
#define PIN_TO_DIGITAL(p) (p)
243249
#define PIN_TO_ANALOG(p) ((p) - 38)
244250
#define PIN_TO_PWM(p) PIN_TO_DIGITAL(p)
@@ -255,6 +261,7 @@ writePort(port, value, bitmask): Write an 8 bit port.
255261
#define IS_PIN_PWM(p) ((p) == 3 || (p) == 5 || (p) == 6 || (p) == 9 || (p) == 10 || (p) == 11 || (p) == 13)
256262
#define IS_PIN_SERVO(p) ((p) >= 0 && (p) < MAX_SERVOS)
257263
#define IS_PIN_I2C(p) ((p) == 2 || (p) == 3)
264+
#define IS_PIN_SPI(p) ((p) == SS || (p) == MOSI || (p) == MISO || (p) == SCK)
258265
#define PIN_TO_DIGITAL(p) (p)
259266
#define PIN_TO_ANALOG(p) (p) - 18
260267
#define PIN_TO_PWM(p) PIN_TO_DIGITAL(p)
@@ -298,6 +305,10 @@ writePort(port, value, bitmask): Write an 8 bit port.
298305
#error "Please edit Boards.h with a hardware abstraction for this board"
299306
#endif
300307

308+
// as long this is not defined for all boards:
309+
#ifndef IS_PIN_SPI(p)
310+
#define IS_PIN_SPI(p) 0
311+
#endif
301312

302313
/*==============================================================================
303314
* readPort() - Read an 8 bit port

0 commit comments

Comments
 (0)