Skip to content

Commit 785f87c

Browse files
p3pAlexColello
authored andcommitted
🐛 Fix LPC176x M43 Pins Debugging (MarlinFirmware#22611)
1 parent 7257d3f commit 785f87c

File tree

11 files changed

+22
-18
lines changed

11 files changed

+22
-18
lines changed

Marlin/src/HAL/AVR/pinsDebug.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -393,3 +393,4 @@ static void pwm_details(uint8_t pin) {
393393
#endif
394394

395395
#define PRINT_PIN(p) do{ sprintf_P(buffer, PSTR("%3d "), p); SERIAL_ECHO(buffer); }while(0)
396+
#define PRINT_PIN_ANALOG(p) do{ sprintf_P(buffer, PSTR(" (A%2d) "), DIGITAL_PIN_TO_ANALOG_PIN(pin)); SERIAL_ECHO(buffer); }while(0)

Marlin/src/HAL/DUE/pinsDebug.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@
6464
#define PRINT_PORT(p)
6565
#define PRINT_ARRAY_NAME(x) do{ sprintf_P(buffer, PSTR("%-" STRINGIFY(MAX_NAME_LENGTH) "s"), pin_array[x].name); SERIAL_ECHO(buffer); }while(0)
6666
#define PRINT_PIN(p) do{ sprintf_P(buffer, PSTR("%02d"), p); SERIAL_ECHO(buffer); }while(0)
67+
#define PRINT_PIN_ANALOG(p) do{ sprintf_P(buffer, PSTR(" (A%2d) "), DIGITAL_PIN_TO_ANALOG_PIN(pin)); SERIAL_ECHO(buffer); }while(0)
6768
#define GET_ARRAY_PIN(p) pin_array[p].pin
6869
#define GET_ARRAY_IS_DIGITAL(p) pin_array[p].is_digital
6970
#define VALID_PIN(pin) (pin >= 0 && pin < (int8_t)NUMBER_PINS_TOTAL ? 1 : 0)

Marlin/src/HAL/LINUX/pinsDebug.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
#define GET_ARRAY_PIN(p) pin_array[p].pin
3535
#define PRINT_ARRAY_NAME(x) do{ sprintf_P(buffer, PSTR("%-" STRINGIFY(MAX_NAME_LENGTH) "s"), pin_array[x].name); SERIAL_ECHO(buffer); }while(0)
3636
#define PRINT_PIN(p) do{ sprintf_P(buffer, PSTR("%3d "), p); SERIAL_ECHO(buffer); }while(0)
37+
#define PRINT_PIN_ANALOG(p) do{ sprintf_P(buffer, PSTR(" (A%2d) "), DIGITAL_PIN_TO_ANALOG_PIN(pin)); SERIAL_ECHO(buffer); }while(0)
3738
#define MULTI_NAME_PAD 16 // space needed to be pretty if not first name assigned to a pin
3839

3940
// active ADC function/mode/code values for PINSEL registers

Marlin/src/HAL/LPC1768/pinsDebug.h

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,8 @@
3333
#define PRINT_PORT(p)
3434
#define GET_ARRAY_PIN(p) pin_array[p].pin
3535
#define PRINT_ARRAY_NAME(x) do{ sprintf_P(buffer, PSTR("%-" STRINGIFY(MAX_NAME_LENGTH) "s"), pin_array[x].name); SERIAL_ECHO(buffer); }while(0)
36-
#define PRINT_PIN(p) do{ sprintf_P(buffer, PSTR("%d.%02d"), LPC176x::pin_port(p), LPC176x::pin_bit(p)); SERIAL_ECHO(buffer); }while(0)
36+
#define PRINT_PIN(p) do{ sprintf_P(buffer, PSTR("P%d_%02d"), LPC176x::pin_port(p), LPC176x::pin_bit(p)); SERIAL_ECHO(buffer); }while(0)
37+
#define PRINT_PIN_ANALOG(p) do{ sprintf_P(buffer, PSTR("_A%d "), LPC176x::pin_get_adc_channel(pin)); SERIAL_ECHO(buffer); }while(0)
3738
#define MULTI_NAME_PAD 16 // space needed to be pretty if not first name assigned to a pin
3839

3940
// pins that will cause hang/reset/disconnect in M43 Toggle and Watch utilities
@@ -48,6 +49,4 @@ bool GET_PINMODE(const pin_t pin) {
4849
return LPC176x::gpio_direction(pin);
4950
}
5051

51-
bool GET_ARRAY_IS_DIGITAL(const pin_t pin) {
52-
return (!LPC176x::pin_has_adc(pin) || !LPC176x::pin_adc_enabled(pin));
53-
}
52+
#define GET_ARRAY_IS_DIGITAL(x) ((bool) pin_array[x].is_digital)

Marlin/src/HAL/NATIVE_SIM/pinsDebug.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
#define GET_ARRAY_PIN(p) pin_array[p].pin
3737
#define PRINT_ARRAY_NAME(x) do{ sprintf_P(buffer, PSTR("%-" STRINGIFY(MAX_NAME_LENGTH) "s"), pin_array[x].name); SERIAL_ECHO(buffer); }while(0)
3838
#define PRINT_PIN(p) do{ sprintf_P(buffer, PSTR("%3d "), p); SERIAL_ECHO(buffer); }while(0)
39+
#define PRINT_PIN_ANALOG(p) do{ sprintf_P(buffer, PSTR(" (A%2d) "), DIGITAL_PIN_TO_ANALOG_PIN(pin)); SERIAL_ECHO(buffer); }while(0)
3940
#define MULTI_NAME_PAD 16 // space needed to be pretty if not first name assigned to a pin
4041

4142
// active ADC function/mode/code values for PINSEL registers

Marlin/src/HAL/SAMD51/pinsDebug.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
#define PRINT_PORT(p) do{ SERIAL_ECHOPGM(" Port: "); sprintf_P(buffer, PSTR("%c%02ld"), 'A' + g_APinDescription[p].ulPort, g_APinDescription[p].ulPin); SERIAL_ECHO(buffer); }while (0)
2727
#define PRINT_ARRAY_NAME(x) do{ sprintf_P(buffer, PSTR("%-" STRINGIFY(MAX_NAME_LENGTH) "s"), pin_array[x].name); SERIAL_ECHO(buffer); }while(0)
2828
#define PRINT_PIN(p) do{ sprintf_P(buffer, PSTR("%3d "), p); SERIAL_ECHO(buffer); }while(0)
29+
#define PRINT_PIN_ANALOG(p) do{ sprintf_P(buffer, PSTR(" (A%2d) "), DIGITAL_PIN_TO_ANALOG_PIN(pin)); SERIAL_ECHO(buffer); }while(0)
2930
#define GET_ARRAY_PIN(p) pin_array[p].pin
3031
#define GET_ARRAY_IS_DIGITAL(p) pin_array[p].is_digital
3132
#define VALID_PIN(pin) (pin >= 0 && pin < (int8_t)NUMBER_PINS_TOTAL)

Marlin/src/HAL/STM32/pinsDebug.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ const XrefInfo pin_xref[] PROGMEM = {
109109
#define VALID_PIN(ANUM) ((ANUM) >= 0 && (ANUM) < NUMBER_PINS_TOTAL)
110110
#define digitalRead_mod(Ard_num) extDigitalRead(Ard_num) // must use Arduino pin numbers when doing reads
111111
#define PRINT_PIN(Q)
112+
#define PRINT_PIN_ANALOG(p) do{ sprintf_P(buffer, PSTR(" (A%2d) "), DIGITAL_PIN_TO_ANALOG_PIN(pin)); SERIAL_ECHO(buffer); }while(0)
112113
#define PRINT_PORT(ANUM) port_print(ANUM)
113114
#define DIGITAL_PIN_TO_ANALOG_PIN(ANUM) -1 // will report analog pin number in the print port routine
114115
#define GET_PIN_MAP_PIN_M43(Index) pin_xref[Index].Ard_num

Marlin/src/HAL/STM32F1/pinsDebug.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ extern const stm32_pin_info PIN_MAP[BOARD_NR_GPIO_PINS];
4141
#define pwm_status(pin) PWM_PIN(pin)
4242
#define digitalRead_mod(p) extDigitalRead(p)
4343
#define PRINT_PIN(p) do{ sprintf_P(buffer, PSTR("%3hd "), int16_t(p)); SERIAL_ECHO(buffer); }while(0)
44+
#define PRINT_PIN_ANALOG(p) do{ sprintf_P(buffer, PSTR(" (A%2d) "), DIGITAL_PIN_TO_ANALOG_PIN(pin)); SERIAL_ECHO(buffer); }while(0)
4445
#define PRINT_PORT(p) print_port(p)
4546
#define PRINT_ARRAY_NAME(x) do{ sprintf_P(buffer, PSTR("%-" STRINGIFY(MAX_NAME_LENGTH) "s"), pin_array[x].name); SERIAL_ECHO(buffer); }while(0)
4647
#define MULTI_NAME_PAD 21 // space needed to be pretty if not first name assigned to a pin

Marlin/src/HAL/TEENSY40_41/pinsDebug.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
#define PRINT_PORT(p)
3131
#define PRINT_ARRAY_NAME(x) do{ sprintf_P(buffer, PSTR("%-" STRINGIFY(MAX_NAME_LENGTH) "s"), pin_array[x].name); SERIAL_ECHO(buffer); }while(0)
3232
#define PRINT_PIN(p) do{ sprintf_P(buffer, PSTR("%02d"), p); SERIAL_ECHO(buffer); }while(0)
33+
#define PRINT_PIN_ANALOG(p) do{ sprintf_P(buffer, PSTR(" (A%2d) "), DIGITAL_PIN_TO_ANALOG_PIN(pin)); SERIAL_ECHO(buffer); }while(0)
3334
#define GET_ARRAY_PIN(p) pin_array[p].pin
3435
#define GET_ARRAY_IS_DIGITAL(p) pin_array[p].is_digital
3536
#define VALID_PIN(pin) (pin >= 0 && pin < (int8_t)NUMBER_PINS_TOTAL ? 1 : 0)

Marlin/src/pins/pinsDebug.h

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -203,11 +203,8 @@ inline void report_pin_state_extended(pin_t pin, const bool ignore, const bool e
203203
SERIAL_ECHOPGM("PIN: ");
204204
PRINT_PIN(pin);
205205
PRINT_PORT(pin);
206-
if (int8_t(DIGITAL_PIN_TO_ANALOG_PIN(pin)) >= 0) {
207-
sprintf_P(buffer, PSTR(" (A%2d) "), DIGITAL_PIN_TO_ANALOG_PIN(pin)); // analog pin number
208-
SERIAL_ECHO(buffer);
209-
}
210-
else SERIAL_ECHO_SP(8); // add padding if not an analog pin
206+
if (int8_t(DIGITAL_PIN_TO_ANALOG_PIN(pin)) >= 0) PRINT_PIN_ANALOG(pin); // analog pin number
207+
else SERIAL_ECHO_SP(8); // add padding if not an analog pin
211208
}
212209
else {
213210
SERIAL_CHAR('.');
@@ -254,12 +251,8 @@ inline void report_pin_state_extended(pin_t pin, const bool ignore, const bool e
254251
SERIAL_ECHOPGM("PIN: ");
255252
PRINT_PIN(pin);
256253
PRINT_PORT(pin);
257-
if (int8_t(DIGITAL_PIN_TO_ANALOG_PIN(pin)) >= 0) {
258-
sprintf_P(buffer, PSTR(" (A%2d) "), DIGITAL_PIN_TO_ANALOG_PIN(pin)); // analog pin number
259-
SERIAL_ECHO(buffer);
260-
}
261-
else
262-
SERIAL_ECHO_SP(8); // add padding if not an analog pin
254+
if (int8_t(DIGITAL_PIN_TO_ANALOG_PIN(pin)) >= 0) PRINT_PIN_ANALOG(pin); // analog pin number
255+
else SERIAL_ECHO_SP(8); // add padding if not an analog pin
263256
SERIAL_ECHOPGM("<unused/unknown>");
264257
if (extended) {
265258

0 commit comments

Comments
 (0)