Unify debugging output with debug_out.h (#13388)
This commit is contained in:
@ -29,6 +29,9 @@
|
||||
#include "../../../module/stepper_indirection.h"
|
||||
#include "../../../module/planner.h"
|
||||
|
||||
#define DEBUG_OUT ENABLED(L6470_CHITCHAT)
|
||||
#include "../../../core/debug_out.h"
|
||||
|
||||
/**
|
||||
*
|
||||
* M906: report or set KVAL_HOLD which sets the maximum effective voltage provided by the
|
||||
@ -93,7 +96,7 @@ void L6470_report_current(L6470 &motor, const uint8_t axis) {
|
||||
L6470.say_axis(axis);
|
||||
#if ENABLED(L6470_CHITCHAT)
|
||||
sprintf_P(temp_buf, PSTR(" status: %4x "), status);
|
||||
SERIAL_ECHO(temp_buf);
|
||||
DEBUG_ECHO(temp_buf);
|
||||
print_bin(status);
|
||||
#endif
|
||||
sprintf_P(temp_buf, PSTR("\n...OverCurrent Threshold: %2d (%4d mA)"), overcurrent_threshold, (overcurrent_threshold + 1) * 375);
|
||||
@ -134,7 +137,7 @@ void L6470_report_current(L6470 &motor, const uint8_t axis) {
|
||||
void GcodeSuite::M906() {
|
||||
#define L6470_SET_KVAL_HOLD(Q) stepper##Q.SetParam(L6470_KVAL_HOLD, value)
|
||||
|
||||
L6470_ECHOLNPGM("M906");
|
||||
DEBUG_ECHOLNPGM("M906");
|
||||
|
||||
bool report_current = true;
|
||||
|
||||
|
@ -29,6 +29,9 @@
|
||||
#include "../../../module/planner.h"
|
||||
#include "../../../libs/L6470/L6470_Marlin.h"
|
||||
|
||||
#define DEBUG_OUT ENABLED(L6470_CHITCHAT)
|
||||
#include "../../../core/debug_out.h"
|
||||
|
||||
/**
|
||||
*
|
||||
* M916: increase KVAL_HOLD until get thermal warning
|
||||
@ -59,7 +62,7 @@
|
||||
|
||||
void GcodeSuite::M916() {
|
||||
|
||||
L6470_ECHOLNPGM("M916");
|
||||
DEBUG_ECHOLNPGM("M916");
|
||||
|
||||
// Variables used by L6470_get_user_input function - some may not be used
|
||||
char axis_mon[3][3] = { " ", " ", " " }; // list of Axes to be monitored
|
||||
@ -80,7 +83,7 @@ void GcodeSuite::M916() {
|
||||
if (L6470.get_user_input(driver_count, axis_index, axis_mon, position_max, position_min, final_feedrate, kval_hold, over_current_flag, ocd_th_val, stall_th_val, over_current_threshold))
|
||||
return; // quit if invalid user input
|
||||
|
||||
L6470_ECHOLNPAIR("feedrate = ", final_feedrate);
|
||||
DEBUG_ECHOLNPAIR("feedrate = ", final_feedrate);
|
||||
|
||||
planner.synchronize(); // wait for all current movement commands to complete
|
||||
|
||||
@ -92,11 +95,11 @@ void GcodeSuite::M916() {
|
||||
char gcode_string[80];
|
||||
uint16_t status_composite = 0;
|
||||
|
||||
L6470_ECHOLNPGM(".\n.");
|
||||
DEBUG_ECHOLNPGM(".\n.");
|
||||
|
||||
do {
|
||||
|
||||
L6470_ECHOLNPAIR("kval_hold = ", kval_hold); // set & report KVAL_HOLD for this run
|
||||
DEBUG_ECHOLNPAIR("kval_hold = ", kval_hold); // set & report KVAL_HOLD for this run
|
||||
|
||||
for (j = 0; j < driver_count; j++)
|
||||
L6470.set_param(axis_index[j], L6470_KVAL_HOLD, kval_hold);
|
||||
@ -119,9 +122,9 @@ void GcodeSuite::M916() {
|
||||
}
|
||||
|
||||
if (status_composite && (status_composite & STATUS_UVLO)) {
|
||||
L6470_ECHOLNPGM("Test aborted (Undervoltage lockout active)");
|
||||
DEBUG_ECHOLNPGM("Test aborted (Undervoltage lockout active)");
|
||||
for (j = 0; j < driver_count; j++) {
|
||||
L6470_ECHOPGM("...");
|
||||
DEBUG_ECHOPGM("...");
|
||||
L6470.error_status_decode(axis_status[j], axis_index[j]);
|
||||
}
|
||||
return;
|
||||
@ -133,18 +136,18 @@ void GcodeSuite::M916() {
|
||||
|
||||
} while (!(status_composite & (STATUS_TH_WRN | STATUS_TH_SD)) && kval_hold); // exit when kval_hold == 0 (rolls over)
|
||||
|
||||
L6470_ECHOPGM(".\n.\nThermal warning/shutdown ");
|
||||
DEBUG_ECHOPGM(".\n.\nThermal warning/shutdown ");
|
||||
if ((status_composite & (STATUS_TH_WRN | STATUS_TH_SD))) {
|
||||
L6470_ECHOLNPGM("has occurred");
|
||||
DEBUG_ECHOLNPGM("has occurred");
|
||||
for (j = 0; j < driver_count; j++) {
|
||||
L6470_ECHOPGM("...");
|
||||
DEBUG_ECHOPGM("...");
|
||||
L6470.error_status_decode(axis_status[j], axis_index[j]);
|
||||
}
|
||||
}
|
||||
else
|
||||
L6470_ECHOLNPGM("(Unable to get)");
|
||||
DEBUG_ECHOLNPGM("(Unable to get)");
|
||||
|
||||
L6470_ECHOLNPGM(".");
|
||||
DEBUG_ECHOLNPGM(".");
|
||||
}
|
||||
|
||||
/**
|
||||
@ -176,7 +179,7 @@ void GcodeSuite::M916() {
|
||||
*/
|
||||
void GcodeSuite::M917() {
|
||||
|
||||
L6470_ECHOLNPGM("M917");
|
||||
DEBUG_ECHOLNPGM("M917");
|
||||
|
||||
char axis_mon[3][3] = { " ", " ", " " }; // list of axes to be monitored
|
||||
uint8_t axis_index[3];
|
||||
@ -196,7 +199,7 @@ void GcodeSuite::M917() {
|
||||
if (L6470.get_user_input(driver_count, axis_index, axis_mon, position_max, position_min, final_feedrate, kval_hold, over_current_flag, ocd_th_val, stall_th_val, over_current_threshold))
|
||||
return; // quit if invalid user input
|
||||
|
||||
L6470_ECHOLNPAIR("feedrate = ", final_feedrate);
|
||||
DEBUG_ECHOLNPAIR("feedrate = ", final_feedrate);
|
||||
|
||||
planner.synchronize(); // wait for all current movement commands to complete
|
||||
for (j = 0; j < driver_count; j++)
|
||||
@ -211,16 +214,16 @@ void GcodeSuite::M917() {
|
||||
// 2 - OCD finalized - decreasing STALL - exit when STALL warning happens
|
||||
// 3 - OCD finalized - increasing STALL - exit when STALL warning stop
|
||||
// 4 - all testing completed
|
||||
L6470_ECHOPAIR(".\n.\n.\nover_current threshold : ", (ocd_th_val + 1) * 375); // first status display
|
||||
L6470_ECHOPAIR(" (OCD_TH: : ", ocd_th_val);
|
||||
L6470_ECHOPAIR(") Stall threshold: ", (stall_th_val + 1) * 31.25);
|
||||
L6470_ECHOPAIR(" (STALL_TH: ", stall_th_val);
|
||||
L6470_ECHOLNPGM(")");
|
||||
DEBUG_ECHOPAIR(".\n.\n.\nover_current threshold : ", (ocd_th_val + 1) * 375); // first status display
|
||||
DEBUG_ECHOPAIR(" (OCD_TH: : ", ocd_th_val);
|
||||
DEBUG_ECHOPAIR(") Stall threshold: ", (stall_th_val + 1) * 31.25);
|
||||
DEBUG_ECHOPAIR(" (STALL_TH: ", stall_th_val);
|
||||
DEBUG_ECHOLNPGM(")");
|
||||
|
||||
do {
|
||||
|
||||
L6470_ECHOPAIR("STALL threshold : ", (stall_th_val + 1) * 31.25);
|
||||
L6470_ECHOLNPAIR(" OCD threshold : ", (ocd_th_val + 1) * 375);
|
||||
DEBUG_ECHOPAIR("STALL threshold : ", (stall_th_val + 1) * 31.25);
|
||||
DEBUG_ECHOLNPAIR(" OCD threshold : ", (ocd_th_val + 1) * 375);
|
||||
|
||||
sprintf_P(gcode_string, PSTR("G0 %s%4.3f F%4.3f"), temp_axis_string, position_min, final_feedrate);
|
||||
gcode.process_subcommands_now_P(gcode_string);
|
||||
@ -238,16 +241,16 @@ void GcodeSuite::M917() {
|
||||
}
|
||||
|
||||
if (status_composite && (status_composite & STATUS_UVLO)) {
|
||||
L6470_ECHOLNPGM("Test aborted (Undervoltage lockout active)");
|
||||
DEBUG_ECHOLNPGM("Test aborted (Undervoltage lockout active)");
|
||||
for (j = 0; j < driver_count; j++) {
|
||||
L6470_ECHOPGM("...");
|
||||
DEBUG_ECHOPGM("...");
|
||||
L6470.error_status_decode(axis_status[j], axis_index[j]);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (status_composite & (STATUS_TH_WRN | STATUS_TH_SD)) {
|
||||
L6470_ECHOLNPGM("thermal problem - waiting for chip(s) to cool down ");
|
||||
DEBUG_ECHOLNPGM("thermal problem - waiting for chip(s) to cool down ");
|
||||
uint16_t status_composite_temp = 0;
|
||||
uint8_t k = 0;
|
||||
do {
|
||||
@ -255,11 +258,11 @@ void GcodeSuite::M917() {
|
||||
if (!(k % 4)) {
|
||||
kval_hold *= 0.95;
|
||||
L6470_EOL();
|
||||
L6470_ECHOLNPAIR("Lowering KVAL_HOLD by about 5% to ", kval_hold);
|
||||
DEBUG_ECHOLNPAIR("Lowering KVAL_HOLD by about 5% to ", kval_hold);
|
||||
for (j = 0; j < driver_count; j++)
|
||||
L6470.set_param(axis_index[j], L6470_KVAL_HOLD, kval_hold);
|
||||
}
|
||||
L6470_ECHOLNPGM(".");
|
||||
DEBUG_ECHOLNPGM(".");
|
||||
gcode.reset_stepper_timeout(); // reset_stepper_timeout to keep steppers powered
|
||||
watchdog_reset(); // beat the dog
|
||||
safe_delay(5000);
|
||||
@ -281,22 +284,22 @@ void GcodeSuite::M917() {
|
||||
if (ocd_th_val >=15) {
|
||||
ocd_th_val = 15; // limit to max
|
||||
test_phase = 2; // at highest value so skip phase 1
|
||||
L6470_ECHOLNPGM("LOGIC E0A OCD at highest - skip to 2");
|
||||
DEBUG_ECHOLNPGM("LOGIC E0A OCD at highest - skip to 2");
|
||||
}
|
||||
else {
|
||||
ocd_th_val++; // normal exit to next phase
|
||||
test_phase = 1; // setup for first pass of phase 1
|
||||
L6470_ECHOLNPGM("LOGIC E0B - inc OCD & go to 1");
|
||||
DEBUG_ECHOLNPGM("LOGIC E0B - inc OCD & go to 1");
|
||||
}
|
||||
}
|
||||
else { // phase 0 without OCD warning - keep on decrementing if can
|
||||
if (ocd_th_val) {
|
||||
ocd_th_val--; // try lower value
|
||||
L6470_ECHOLNPGM("LOGIC E0C - dec OCD");
|
||||
DEBUG_ECHOLNPGM("LOGIC E0C - dec OCD");
|
||||
}
|
||||
else {
|
||||
test_phase = 2; // at lowest value without warning so skip phase 1
|
||||
L6470_ECHOLNPGM("LOGIC E0D - OCD at latest - go to 2");
|
||||
DEBUG_ECHOLNPGM("LOGIC E0D - OCD at latest - go to 2");
|
||||
}
|
||||
}
|
||||
} break;
|
||||
@ -307,16 +310,16 @@ void GcodeSuite::M917() {
|
||||
if (ocd_th_val >= 15) {
|
||||
ocd_th_val = 15; // limit to max
|
||||
test_phase = 2; // at highest value so go to next phase
|
||||
L6470_ECHOLNPGM("LOGIC E1A - OCD at max - go to 2");
|
||||
DEBUG_ECHOLNPGM("LOGIC E1A - OCD at max - go to 2");
|
||||
}
|
||||
else {
|
||||
ocd_th_val++; // try a higher value
|
||||
L6470_ECHOLNPGM("LOGIC E1B - inc OCD");
|
||||
DEBUG_ECHOLNPGM("LOGIC E1B - inc OCD");
|
||||
}
|
||||
}
|
||||
else { // phase 1 without OCD warning - normal exit to phase 2
|
||||
test_phase = 2;
|
||||
L6470_ECHOLNPGM("LOGIC E1C - no OCD warning - go to 1");
|
||||
DEBUG_ECHOLNPGM("LOGIC E1C - no OCD warning - go to 1");
|
||||
}
|
||||
} break;
|
||||
|
||||
@ -325,25 +328,25 @@ void GcodeSuite::M917() {
|
||||
// phase 2 with stall warning - time to go to next phase
|
||||
if (stall_th_val >= 127) {
|
||||
stall_th_val = 127; // limit to max
|
||||
L6470_ECHOLNPGM("LOGIC E2A - STALL warning, STALL at max, quit");
|
||||
L6470_ECHOLNPGM("finished - STALL at maximum value but still have stall warning");
|
||||
DEBUG_ECHOLNPGM("LOGIC E2A - STALL warning, STALL at max, quit");
|
||||
DEBUG_ECHOLNPGM("finished - STALL at maximum value but still have stall warning");
|
||||
test_phase = 4;
|
||||
}
|
||||
else {
|
||||
test_phase = 3; // normal exit to next phase (found failing value of STALL)
|
||||
stall_th_val++; // setup for first pass of phase 3
|
||||
L6470_ECHOLNPGM("LOGIC E2B - INC - STALL warning, inc Stall, go to 3");
|
||||
DEBUG_ECHOLNPGM("LOGIC E2B - INC - STALL warning, inc Stall, go to 3");
|
||||
}
|
||||
}
|
||||
else { // phase 2 without stall warning - decrement if can
|
||||
if (stall_th_val) {
|
||||
stall_th_val--; // try a lower value
|
||||
L6470_ECHOLNPGM("LOGIC E2C - no STALL, dec STALL");
|
||||
DEBUG_ECHOLNPGM("LOGIC E2C - no STALL, dec STALL");
|
||||
}
|
||||
else {
|
||||
L6470_ECHOLNPGM("finished - STALL at lowest value but still do NOT have stall warning");
|
||||
DEBUG_ECHOLNPGM("finished - STALL at lowest value but still do NOT have stall warning");
|
||||
test_phase = 4;
|
||||
L6470_ECHOLNPGM("LOGIC E2D - no STALL, at lowest so quit");
|
||||
DEBUG_ECHOLNPGM("LOGIC E2D - no STALL, at lowest so quit");
|
||||
}
|
||||
}
|
||||
} break;
|
||||
@ -353,19 +356,19 @@ void GcodeSuite::M917() {
|
||||
// phase 3 with stall warning - increment if can
|
||||
if (stall_th_val >= 127) {
|
||||
stall_th_val = 127; // limit to max
|
||||
L6470_ECHOLNPGM("finished - STALL at maximum value but still have stall warning");
|
||||
DEBUG_ECHOLNPGM("finished - STALL at maximum value but still have stall warning");
|
||||
test_phase = 4;
|
||||
L6470_ECHOLNPGM("LOGIC E3A - STALL, at max so quit");
|
||||
DEBUG_ECHOLNPGM("LOGIC E3A - STALL, at max so quit");
|
||||
}
|
||||
else {
|
||||
stall_th_val++; // still looking for passing value
|
||||
L6470_ECHOLNPGM("LOGIC E3B - STALL, inc stall");
|
||||
DEBUG_ECHOLNPGM("LOGIC E3B - STALL, inc stall");
|
||||
}
|
||||
}
|
||||
else { //phase 3 without stall warning but have OCD warning
|
||||
L6470_ECHOLNPGM("Hardware problem - OCD warning without STALL warning");
|
||||
DEBUG_ECHOLNPGM("Hardware problem - OCD warning without STALL warning");
|
||||
test_phase = 4;
|
||||
L6470_ECHOLNPGM("LOGIC E3C - not STALLED, hardware problem (quit)");
|
||||
DEBUG_ECHOLNPGM("LOGIC E3C - not STALLED, hardware problem (quit)");
|
||||
}
|
||||
} break;
|
||||
|
||||
@ -377,30 +380,30 @@ void GcodeSuite::M917() {
|
||||
case 0: { // phase 0 without OCD warning - keep on decrementing if can
|
||||
if (ocd_th_val) {
|
||||
ocd_th_val--; // try lower value
|
||||
L6470_ECHOLNPGM("LOGIC N0A - DEC OCD");
|
||||
DEBUG_ECHOLNPGM("LOGIC N0A - DEC OCD");
|
||||
}
|
||||
else {
|
||||
test_phase = 2; // at lowest value without warning so skip phase 1
|
||||
L6470_ECHOLNPGM("LOGIC N0B - OCD at lowest (go to phase 2)");
|
||||
DEBUG_ECHOLNPGM("LOGIC N0B - OCD at lowest (go to phase 2)");
|
||||
}
|
||||
} break;
|
||||
|
||||
case 1: L6470_ECHOLNPGM("LOGIC N1 (go directly to 2)"); // phase 1 without OCD warning - drop directly to phase 2
|
||||
case 1: DEBUG_ECHOLNPGM("LOGIC N1 (go directly to 2)"); // phase 1 without OCD warning - drop directly to phase 2
|
||||
|
||||
case 2: { // phase 2 without stall warning - keep on decrementing if can
|
||||
if (stall_th_val) {
|
||||
stall_th_val--; // try a lower value (stay in phase 2)
|
||||
L6470_ECHOLNPGM("LOGIC N2B - dec STALL");
|
||||
DEBUG_ECHOLNPGM("LOGIC N2B - dec STALL");
|
||||
}
|
||||
else {
|
||||
L6470_ECHOLNPGM("finished - STALL at lowest value but still no stall warning");
|
||||
DEBUG_ECHOLNPGM("finished - STALL at lowest value but still no stall warning");
|
||||
test_phase = 4;
|
||||
L6470_ECHOLNPGM("LOGIC N2C - STALL at lowest (quit)");
|
||||
DEBUG_ECHOLNPGM("LOGIC N2C - STALL at lowest (quit)");
|
||||
}
|
||||
} break;
|
||||
|
||||
case 3: { test_phase = 4;
|
||||
L6470_ECHOLNPGM("LOGIC N3 - finished!");
|
||||
DEBUG_ECHOLNPGM("LOGIC N3 - finished!");
|
||||
} break; // phase 3 without any warnings - desired exit
|
||||
} //
|
||||
} // end of status checks
|
||||
@ -409,22 +412,22 @@ void GcodeSuite::M917() {
|
||||
for (j = 0; j < driver_count; j++) { // update threshold(s)
|
||||
L6470.set_param(axis_index[j], L6470_OCD_TH, ocd_th_val);
|
||||
L6470.set_param(axis_index[j], L6470_STALL_TH, stall_th_val);
|
||||
if (L6470.get_param(axis_index[j], L6470_OCD_TH) != ocd_th_val) L6470_ECHOLNPGM("OCD mismatch");
|
||||
if (L6470.get_param(axis_index[j], L6470_STALL_TH) != stall_th_val) L6470_ECHOLNPGM("STALL mismatch");
|
||||
if (L6470.get_param(axis_index[j], L6470_OCD_TH) != ocd_th_val) DEBUG_ECHOLNPGM("OCD mismatch");
|
||||
if (L6470.get_param(axis_index[j], L6470_STALL_TH) != stall_th_val) DEBUG_ECHOLNPGM("STALL mismatch");
|
||||
}
|
||||
}
|
||||
|
||||
} while (test_phase != 4);
|
||||
|
||||
if (status_composite) {
|
||||
L6470_ECHOLNPGM("Completed with errors");
|
||||
DEBUG_ECHOLNPGM("Completed with errors");
|
||||
for (j = 0; j < driver_count; j++) {
|
||||
L6470_ECHOPGM("...");
|
||||
DEBUG_ECHOPGM("...");
|
||||
L6470.error_status_decode(axis_status[j], axis_index[j]);
|
||||
}
|
||||
}
|
||||
else
|
||||
L6470_ECHOLNPGM("Completed with no errors");
|
||||
DEBUG_ECHOLNPGM("Completed with no errors");
|
||||
|
||||
} // M917
|
||||
|
||||
@ -448,7 +451,7 @@ void GcodeSuite::M917() {
|
||||
*/
|
||||
void GcodeSuite::M918() {
|
||||
|
||||
L6470_ECHOLNPGM("M918");
|
||||
DEBUG_ECHOLNPGM("M918");
|
||||
|
||||
char axis_mon[3][3] = { " ", " ", " " }; // List of axes to monitor
|
||||
uint8_t axis_index[3];
|
||||
@ -469,7 +472,7 @@ void GcodeSuite::M918() {
|
||||
|
||||
uint8_t m_steps = parser.byteval('M');
|
||||
LIMIT(m_steps, 0, 128);
|
||||
L6470_ECHOLNPAIR("M = ", m_steps);
|
||||
DEBUG_ECHOLNPAIR("M = ", m_steps);
|
||||
|
||||
int8_t m_bits = -1;
|
||||
if (m_steps > 85) m_bits = 7; // 128 (no synch output)
|
||||
@ -484,15 +487,15 @@ void GcodeSuite::M918() {
|
||||
|
||||
if (m_bits >= 0) {
|
||||
const int micros = _BV(m_bits);
|
||||
if (micros < 100) { L6470_CHAR(' '); if (micros < 10) L6470_CHAR(' '); }
|
||||
L6470_ECHO(micros);
|
||||
L6470_ECHOPGM(" uSTEPS");
|
||||
if (micros < 100) { DEBUG_CHAR(' '); if (micros < 10) DEBUG_CHAR(' '); }
|
||||
DEBUG_ECHO(micros);
|
||||
DEBUG_ECHOPGM(" uSTEPS");
|
||||
}
|
||||
|
||||
for (j = 0; j < driver_count; j++)
|
||||
L6470.set_param(axis_index[j], L6470_STEP_MODE, m_bits); // set microsteps
|
||||
|
||||
L6470_ECHOLNPAIR("target (maximum) feedrate = ",final_feedrate);
|
||||
DEBUG_ECHOLNPAIR("target (maximum) feedrate = ",final_feedrate);
|
||||
|
||||
float feedrate_inc = final_feedrate / 10, // start at 1/10 of max & go up by 1/10 per step)
|
||||
current_feedrate = 0;
|
||||
@ -508,11 +511,11 @@ void GcodeSuite::M918() {
|
||||
|
||||
char gcode_string[80];
|
||||
uint16_t status_composite = 0;
|
||||
L6470_ECHOLNPGM(".\n.\n."); // make the feedrate prints easier to see
|
||||
DEBUG_ECHOLNPGM(".\n.\n."); // make the feedrate prints easier to see
|
||||
|
||||
do {
|
||||
current_feedrate += feedrate_inc;
|
||||
L6470_ECHOLNPAIR("...feedrate = ", current_feedrate);
|
||||
DEBUG_ECHOLNPAIR("...feedrate = ", current_feedrate);
|
||||
|
||||
sprintf_P(gcode_string, PSTR("G0 %s%4.3f F%4.3f"), temp_axis_string, position_min, current_feedrate);
|
||||
gcode.process_subcommands_now_P(gcode_string);
|
||||
@ -529,15 +532,16 @@ void GcodeSuite::M918() {
|
||||
if (status_composite) break; // quit if any errors flags are raised
|
||||
} while (current_feedrate < final_feedrate * 0.99);
|
||||
|
||||
DEBUG_ECHOPGM("Completed with errors");
|
||||
if (status_composite) {
|
||||
L6470_ECHOLNPGM("Completed with errors");
|
||||
DEBUG_ECHOLNPGM("errors");
|
||||
for (j = 0; j < driver_count; j++) {
|
||||
L6470_ECHOPGM("...");
|
||||
DEBUG_ECHOPGM("...");
|
||||
L6470.error_status_decode(axis_status[j], axis_index[j]);
|
||||
}
|
||||
}
|
||||
else
|
||||
L6470_ECHOLNPGM("Completed with no errors");
|
||||
DEBUG_ECHOLNPGM("no errors");
|
||||
|
||||
} // M918
|
||||
|
||||
|
Reference in New Issue
Block a user