Skip to content

Commit 8011329

Browse files
committed
Add digitalPinIsValid() function
Handle if pin is valid (!=NC) Used for firmata. Signed-off-by: Frederic.Pillon <[email protected]>
1 parent 9d272a1 commit 8011329

File tree

2 files changed

+3
-1
lines changed

2 files changed

+3
-1
lines changed

Diff for: cores/arduino/pins_arduino.h

+2
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,8 @@ uint32_t pinNametoDigitalPin(PinName p);
6565
#define digitalPinToPort(p) ( get_GPIO_Port(digitalPinToPinName(p)) )
6666
#define digitalPinToBitMask(p) ( STM_GPIO_PIN(digitalPinToPinName(p)) )
6767

68+
#define digitalPinIsValid(p) (digitalPinToPinName(p) != NC)
69+
6870
#ifdef __cplusplus
6971
}
7072
#endif

Diff for: libraries/Firmata/Boards.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -771,7 +771,7 @@ writePort(port, value, bitmask): Write an 8 bit port.
771771
#define TOTAL_PORTS MAX_NB_PORT
772772
#define VERSION_BLINK_PIN LED_BUILTIN
773773
// PIN_SERIALY_RX/TX defined in the variant.h
774-
#define IS_PIN_DIGITAL(p) ((p != PIN_SERIAL_RX) && (p != PIN_SERIAL_TX) && (p < TOTAL_PINS))
774+
#define IS_PIN_DIGITAL(p) (digitalPinIsValid(p) && (p != PIN_SERIAL_RX) && (p != PIN_SERIAL_TX))
775775
#define IS_PIN_ANALOG(p) ((p) >= A0 && (p) < AEND)
776776
#define IS_PIN_PWM(p) digitalPinHasPWM(p)
777777
#define IS_PIN_SERVO(p) IS_PIN_DIGITAL(p)

0 commit comments

Comments
 (0)