|
| 1 | + |
| 2 | +void checkAnalogPins(void) { |
| 3 | + Serial.println("Checking analog pins definition..."); |
| 4 | + |
| 5 | + for ( uint32_t i = 0; i < (NUM_ANALOG_INPUTS); i++) { |
| 6 | + uint8_t res = 0; |
| 7 | + // i is the index in the analogInputPin array |
| 8 | + uint32_t pinnum_array = analogInputPin[i]; |
| 9 | + uint32_t pinnum_aTD_i = analogInputToDigitalPin(i); |
| 10 | + uint32_t pinnum_aTD_Ax = analogInputToDigitalPin(A0 + i); |
| 11 | + |
| 12 | + PinName pn_dTpn_Ax = digitalPinToPinName(A0 + i); |
| 13 | + PinName pn_aTpn_Ax = analogInputToPinName(A0 + i); |
| 14 | + |
| 15 | + |
| 16 | + if ((pinnum_array != pinnum_aTD_i) || (pinnum_array != pinnum_aTD_Ax) || (pinnum_aTD_i == NC)) { |
| 17 | + res = 1; |
| 18 | + } |
| 19 | + if (!digitalpinIsAnalogInput(pinnum_array) || !digitalpinIsAnalogInput(pinnum_aTD_i) || !digitalpinIsAnalogInput(pinnum_aTD_Ax)) { |
| 20 | + res |= 2; |
| 21 | + } |
| 22 | + if ((pn_dTpn_Ax != pn_aTpn_Ax) || (pinnum_aTD_i == NC)) { |
| 23 | + res |= 4; |
| 24 | + } |
| 25 | + if (digitalPinToAnalogInput(pinnum_aTD_i) != i) { |
| 26 | + |
| 27 | + res |= 8; |
| 28 | + } |
| 29 | + /* |
| 30 | + pname: Pin of type PinName (PY_n) |
| 31 | + asPN: true display as a PinName, false as a pin number (PYn) |
| 32 | + val: display value or not |
| 33 | + ln: carriage return or not |
| 34 | + */ |
| 35 | + if (res) { |
| 36 | + Serial.printf("A%i defined as %i with pin name: ", i, A0 + i); |
| 37 | + printPinName(pn_aTpn_Ax, true, true, false); |
| 38 | + Serial.print(" and pin number: "); |
| 39 | + printPinName(pn_aTpn_Ax, false, true, false); |
| 40 | + Serial.printf(" --> %i\n", res); |
| 41 | + Serial.printf(" --> digitalPinToAnalogInput(%i) = %i\n", pinnum_aTD_i, digitalPinToAnalogInput(pinnum_aTD_i)); |
| 42 | + |
| 43 | + |
| 44 | + // Serial.print("\tPin name "); |
| 45 | + // printPinName(pn_Ax, true, true, false); |
| 46 | + // Serial.print(" have to be indexed higher than NUM_ANALOG_INPUTS ("); |
| 47 | + // Serial.print(NUM_ANALOG_INPUTS); |
| 48 | + // Serial.println(") to be able to use:"); |
| 49 | + // PinName pn_Ax_analog = analogInputToPinName(pinNametoDigitalPin(pn_Ax)); |
| 50 | + // Serial.print("\tAnalogRead("); |
| 51 | + // printPinName(pn_Ax, false, false, false); |
| 52 | + // Serial.print(") --> which currently use pin name: "); |
| 53 | + // printPinName(pn_Ax_analog, true, true, false); |
| 54 | + // Serial.print(" and pin number: "); |
| 55 | + // printPinName(pn_Ax_analog, false, true, true); |
| 56 | + } |
| 57 | + } |
| 58 | + Serial.println("End check analog pins"); |
| 59 | + Serial.println("#####"); |
| 60 | +} |
0 commit comments