@@ -30,9 +30,6 @@ _Static_assert(LastPort <= 0x0F, "PortName must be less than 16");
3030
3131_Static_assert (NUM_ANALOG_INPUTS <= MAX_ANALOG_INPUTS ,
3232 "Core NUM_ANALOG_INPUTS limited to MAX_ANALOG_INPUTS" );
33- /* Analog pins must be contiguous to be able to loop on each value */
34- _Static_assert (NUM_ANALOG_FIRST >= NUM_ANALOG_INPUTS ,
35- "First analog pin value (A0) must be greater than or equal to NUM_ANALOG_INPUTS" );
3633
3734/* Default for Arduino connector compatibility */
3835/* SPI Definitions */
@@ -86,34 +83,29 @@ extern const uint32_t analogInputPin[];
8683#define NOT_AN_INTERRUPT (uint32_t)NC
8784
8885/* Convert a digital pin number Dxx to a PinName PX_n */
86+ #if NUM_ANALOG_INPUTS > 0
8987/* Note: Analog pin is also a digital pin */
90- #ifndef NUM_ANALOG_LAST
91- #define digitalPinToPinName (p ) (((uint32_t)p < NUM_DIGITAL_PINS) ? digitalPin[p] : NC)
92- #else
9388#define digitalPinToPinName (p ) (((uint32_t)p < NUM_DIGITAL_PINS) ? digitalPin[p] : \
9489 ((uint32_t)p >= NUM_ANALOG_FIRST) && ((uint32_t)p <= NUM_ANALOG_LAST) ? \
9590 digitalPin[analogInputPin[p-NUM_ANALOG_FIRST]] : NC)
96- #endif
91+ #else
92+ #define digitalPinToPinName (p ) (((uint32_t)p < NUM_DIGITAL_PINS) ? digitalPin[p] : NC)
93+ #endif /* NUM_ANALOG_INPUTS > 0 */
9794/* Convert a PinName PX_n to a digital pin number */
9895uint32_t pinNametoDigitalPin (PinName p );
9996
10097/* Convert an analog pin number to a digital pin number */
10198#if NUM_ANALOG_INPUTS > 0
10299/* Used by analogRead api to have A0 == 0 */
103- /* For contiguous analog pins definition in digitalPin array */
104- #ifndef NUM_ANALOG_LAST
105- #define analogInputToDigitalPin (p ) (((uint32_t)p < NUM_ANALOG_INPUTS) ? (p+A0) : p)
106- #else
107- /* For non contiguous analog pins definition in digitalPin array */
100+ /* Non contiguous analog pins definition in digitalPin array */
108101#define analogInputToDigitalPin (p ) ( \
109102 ((uint32_t)p < NUM_ANALOG_INPUTS) ? analogInputPin[p] : \
110103 ((uint32_t)p >= NUM_ANALOG_FIRST) && ((uint32_t)p <= NUM_ANALOG_LAST) ? \
111104 analogInputPin[p-NUM_ANALOG_FIRST] : p)
112- #endif // !NUM_ANALOG_LAST
113105#else
114106/* No analog pin defined */
115107#define analogInputToDigitalPin (p ) (NUM_DIGITAL_PINS)
116- #endif // NUM_ANALOG_INPUTS > 0
108+ #endif /* NUM_ANALOG_INPUTS > 0 */
117109
118110/* Convert an analog pin number Axx to a PinName PX_n */
119111PinName analogInputToPinName (uint32_t pin );
0 commit comments