@@ -85,11 +85,11 @@ extern const uint32_t analogInputPin[];
8585/* Convert a digital pin number Dxx to a PinName PX_n */
8686#if NUM_ANALOG_INPUTS > 0
8787/* Note: Analog pin is also a digital pin */
88- #define digitalPinToPinName (p ) (((uint32_t)p < NUM_DIGITAL_PINS) ? digitalPin[p] : \
89- ((uint32_t)p >= NUM_ANALOG_FIRST ) && ((uint32_t)p <= NUM_ANALOG_LAST ) ? \
90- digitalPin[analogInputPin[p-NUM_ANALOG_FIRST ]] : NC)
88+ #define digitalPinToPinName (p ) (((uint32_t)(p) < NUM_DIGITAL_PINS) ? digitalPin[p] : \
89+ ((( uint32_t)(p) & PANA) == PANA ) && ((uint32_t)(p) < NUM_ANALOG_INTERNAL_FIRST ) ? \
90+ digitalPin[analogInputPin[(p)&PANA_IDX ]] : NC)
9191#else
92- #define digitalPinToPinName (p ) (((uint32_t)p < NUM_DIGITAL_PINS) ? digitalPin[p] : NC)
92+ #define digitalPinToPinName (p ) (((uint32_t)(p) < NUM_DIGITAL_PINS) ? digitalPin[p] : NC)
9393#endif /* NUM_ANALOG_INPUTS > 0 */
9494/* Convert a PinName PX_n to a digital pin number */
9595uint32_t pinNametoDigitalPin (PinName p );
@@ -98,16 +98,14 @@ uint32_t pinNametoDigitalPin(PinName p);
9898#if NUM_ANALOG_INPUTS > 0
9999/* Used by analogRead api to have A0 == 0 */
100100/* Non contiguous analog pins definition in digitalPin array */
101- #define analogInputToDigitalPin (p ) ( \
102- ((uint32_t)p < NUM_ANALOG_INPUTS) ? analogInputPin[p] : \
103- ((uint32_t)p >= NUM_ANALOG_FIRST) && ((uint32_t)p <= NUM_ANALOG_LAST) ? \
104- analogInputPin[p-NUM_ANALOG_FIRST] : p)
105- #else
106- /* No analog pin defined */
101+ #define analogInputToDigitalPin (p ) (((uint32_t)(p) < NUM_ANALOG_INPUTS) ? analogInputPin[p] : \
102+ (((uint32_t)(p) & PANA) == PANA) && ((uint32_t)(p) < NUM_ANALOG_INTERNAL_FIRST) ? \
103+ analogInputPin[(p)&PANA_IDX] : (uint32_t)NC)
104+ #else /* No analog pin defined */
107105#define analogInputToDigitalPin (p ) (NUM_DIGITAL_PINS)
108106#endif /* NUM_ANALOG_INPUTS > 0 */
109107
110- /* Convert an analog pin number Axx to a PinName PX_n */
108+ /* Convert an analog pin number Ax to a PinName PX_n */
111109PinName analogInputToPinName (uint32_t pin );
112110
113111/* All pins could manage EXTI */
@@ -166,8 +164,9 @@ PinName analogInputToPinName(uint32_t pin);
166164#define pinIsSerial (p ) ((digitalPinFirstOccurence(p) == PIN_SERIAL_RX) ||\
167165 (digitalPinFirstOccurence(p) == PIN_SERIAL_TX))
168166#endif
169- /* Convenient macro to handle Analog */
170- bool pinIsAnalogInput (uint32_t pin );
167+ /* Convenient macro to handle Analog for Firmata */
168+ #define pinIsAnalogInput digitalpinIsAnalogInput
169+ bool digitalpinIsAnalogInput (uint32_t pin );
171170uint32_t digitalPinToAnalogInput (uint32_t pin );
172171
173172#ifdef __cplusplus
0 commit comments