Apply loop shorthand macros (#17159)
This commit is contained in:
@ -157,7 +157,7 @@ float g26_extrusion_multiplier,
|
||||
g26_layer_height,
|
||||
g26_prime_length;
|
||||
|
||||
xy_pos_t g26_pos; // = { 0, 0 }
|
||||
xy_pos_t g26_xy_pos; // = { 0, 0 }
|
||||
|
||||
int16_t g26_bed_temp,
|
||||
g26_hotend_temp;
|
||||
@ -187,29 +187,27 @@ mesh_index_pair find_closest_circle_to_print(const xy_pos_t &pos) {
|
||||
|
||||
out_point.pos = -1;
|
||||
|
||||
for (uint8_t i = 0; i < GRID_MAX_POINTS_X; i++) {
|
||||
for (uint8_t j = 0; j < GRID_MAX_POINTS_Y; j++) {
|
||||
if (!circle_flags.marked(i, j)) {
|
||||
// We found a circle that needs to be printed
|
||||
const xy_pos_t m = { _GET_MESH_X(i), _GET_MESH_Y(j) };
|
||||
GRID_LOOP(i, j) {
|
||||
if (!circle_flags.marked(i, j)) {
|
||||
// We found a circle that needs to be printed
|
||||
const xy_pos_t m = { _GET_MESH_X(i), _GET_MESH_Y(j) };
|
||||
|
||||
// Get the distance to this intersection
|
||||
float f = (pos - m).magnitude();
|
||||
// Get the distance to this intersection
|
||||
float f = (pos - m).magnitude();
|
||||
|
||||
// It is possible that we are being called with the values
|
||||
// to let us find the closest circle to the start position.
|
||||
// But if this is not the case, add a small weighting to the
|
||||
// distance calculation to help it choose a better place to continue.
|
||||
f += (g26_pos - m).magnitude() / 15.0f;
|
||||
// It is possible that we are being called with the values
|
||||
// to let us find the closest circle to the start position.
|
||||
// But if this is not the case, add a small weighting to the
|
||||
// distance calculation to help it choose a better place to continue.
|
||||
f += (g26_xy_pos - m).magnitude() / 15.0f;
|
||||
|
||||
// Add the specified amount of Random Noise to our search
|
||||
if (random_deviation > 1.0) f += random(0.0, random_deviation);
|
||||
// Add the specified amount of Random Noise to our search
|
||||
if (random_deviation > 1.0) f += random(0.0, random_deviation);
|
||||
|
||||
if (f < closest) {
|
||||
closest = f; // Found a closer un-printed location
|
||||
out_point.pos.set(i, j); // Save its data
|
||||
out_point.distance = closest;
|
||||
}
|
||||
if (f < closest) {
|
||||
closest = f; // Found a closer un-printed location
|
||||
out_point.pos.set(i, j); // Save its data
|
||||
out_point.distance = closest;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -308,51 +306,49 @@ inline bool look_for_lines_to_connect() {
|
||||
xyz_pos_t s, e;
|
||||
s.z = e.z = g26_layer_height;
|
||||
|
||||
for (uint8_t i = 0; i < GRID_MAX_POINTS_X; i++) {
|
||||
for (uint8_t j = 0; j < GRID_MAX_POINTS_Y; j++) {
|
||||
GRID_LOOP(i, j) {
|
||||
|
||||
#if HAS_LCD_MENU
|
||||
if (user_canceled()) return true;
|
||||
#endif
|
||||
#if HAS_LCD_MENU
|
||||
if (user_canceled()) return true;
|
||||
#endif
|
||||
|
||||
if (i < GRID_MAX_POINTS_X) { // Can't connect to anything farther to the right than GRID_MAX_POINTS_X.
|
||||
if (i < (GRID_MAX_POINTS_X)) { // Can't connect to anything farther to the right than GRID_MAX_POINTS_X.
|
||||
// Already a half circle at the edge of the bed.
|
||||
|
||||
if (circle_flags.marked(i, j) && circle_flags.marked(i + 1, j)) { // Test whether a leftward line can be done
|
||||
if (!horizontal_mesh_line_flags.marked(i, j)) {
|
||||
// Two circles need a horizontal line to connect them
|
||||
s.x = _GET_MESH_X( i ) + (INTERSECTION_CIRCLE_RADIUS - (CROSSHAIRS_SIZE)); // right edge
|
||||
e.x = _GET_MESH_X(i + 1) - (INTERSECTION_CIRCLE_RADIUS - (CROSSHAIRS_SIZE)); // left edge
|
||||
if (circle_flags.marked(i, j) && circle_flags.marked(i + 1, j)) { // Test whether a leftward line can be done
|
||||
if (!horizontal_mesh_line_flags.marked(i, j)) {
|
||||
// Two circles need a horizontal line to connect them
|
||||
s.x = _GET_MESH_X( i ) + (INTERSECTION_CIRCLE_RADIUS - (CROSSHAIRS_SIZE)); // right edge
|
||||
e.x = _GET_MESH_X(i + 1) - (INTERSECTION_CIRCLE_RADIUS - (CROSSHAIRS_SIZE)); // left edge
|
||||
|
||||
LIMIT(s.x, X_MIN_POS + 1, X_MAX_POS - 1);
|
||||
s.y = e.y = constrain(_GET_MESH_Y(j), Y_MIN_POS + 1, Y_MAX_POS - 1);
|
||||
LIMIT(e.x, X_MIN_POS + 1, X_MAX_POS - 1);
|
||||
LIMIT(s.x, X_MIN_POS + 1, X_MAX_POS - 1);
|
||||
s.y = e.y = constrain(_GET_MESH_Y(j), Y_MIN_POS + 1, Y_MAX_POS - 1);
|
||||
LIMIT(e.x, X_MIN_POS + 1, X_MAX_POS - 1);
|
||||
|
||||
if (position_is_reachable(s.x, s.y) && position_is_reachable(e.x, e.y))
|
||||
print_line_from_here_to_there(s, e);
|
||||
|
||||
horizontal_mesh_line_flags.mark(i, j); // Mark done, even if skipped
|
||||
}
|
||||
}
|
||||
|
||||
if (j < (GRID_MAX_POINTS_Y)) { // Can't connect to anything further back than GRID_MAX_POINTS_Y.
|
||||
// Already a half circle at the edge of the bed.
|
||||
|
||||
if (circle_flags.marked(i, j) && circle_flags.marked(i, j + 1)) { // Test whether a downward line can be done
|
||||
if (!vertical_mesh_line_flags.marked(i, j)) {
|
||||
// Two circles that need a vertical line to connect them
|
||||
s.y = _GET_MESH_Y( j ) + (INTERSECTION_CIRCLE_RADIUS - (CROSSHAIRS_SIZE)); // top edge
|
||||
e.y = _GET_MESH_Y(j + 1) - (INTERSECTION_CIRCLE_RADIUS - (CROSSHAIRS_SIZE)); // bottom edge
|
||||
|
||||
s.x = e.x = constrain(_GET_MESH_X(i), X_MIN_POS + 1, X_MAX_POS - 1);
|
||||
LIMIT(s.y, Y_MIN_POS + 1, Y_MAX_POS - 1);
|
||||
LIMIT(e.y, Y_MIN_POS + 1, Y_MAX_POS - 1);
|
||||
|
||||
if (position_is_reachable(s.x, s.y) && position_is_reachable(e.x, e.y))
|
||||
print_line_from_here_to_there(s, e);
|
||||
|
||||
horizontal_mesh_line_flags.mark(i, j); // Mark done, even if skipped
|
||||
}
|
||||
}
|
||||
|
||||
if (j < GRID_MAX_POINTS_Y) { // Can't connect to anything further back than GRID_MAX_POINTS_Y.
|
||||
// Already a half circle at the edge of the bed.
|
||||
|
||||
if (circle_flags.marked(i, j) && circle_flags.marked(i, j + 1)) { // Test whether a downward line can be done
|
||||
if (!vertical_mesh_line_flags.marked(i, j)) {
|
||||
// Two circles that need a vertical line to connect them
|
||||
s.y = _GET_MESH_Y( j ) + (INTERSECTION_CIRCLE_RADIUS - (CROSSHAIRS_SIZE)); // top edge
|
||||
e.y = _GET_MESH_Y(j + 1) - (INTERSECTION_CIRCLE_RADIUS - (CROSSHAIRS_SIZE)); // bottom edge
|
||||
|
||||
s.x = e.x = constrain(_GET_MESH_X(i), X_MIN_POS + 1, X_MAX_POS - 1);
|
||||
LIMIT(s.y, Y_MIN_POS + 1, Y_MAX_POS - 1);
|
||||
LIMIT(e.y, Y_MIN_POS + 1, Y_MAX_POS - 1);
|
||||
|
||||
if (position_is_reachable(s.x, s.y) && position_is_reachable(e.x, e.y))
|
||||
print_line_from_here_to_there(s, e);
|
||||
|
||||
vertical_mesh_line_flags.mark(i, j); // Mark done, even if skipped
|
||||
}
|
||||
vertical_mesh_line_flags.mark(i, j); // Mark done, even if skipped
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -628,9 +624,9 @@ void GcodeSuite::G26() {
|
||||
return;
|
||||
}
|
||||
|
||||
g26_pos.set(parser.seenval('X') ? RAW_X_POSITION(parser.value_linear_units()) : current_position.x,
|
||||
parser.seenval('Y') ? RAW_Y_POSITION(parser.value_linear_units()) : current_position.y);
|
||||
if (!position_is_reachable(g26_pos.x, g26_pos.y)) {
|
||||
g26_xy_pos.set(parser.seenval('X') ? RAW_X_POSITION(parser.value_linear_units()) : current_position.x,
|
||||
parser.seenval('Y') ? RAW_Y_POSITION(parser.value_linear_units()) : current_position.y);
|
||||
if (!position_is_reachable(g26_xy_pos)) {
|
||||
SERIAL_ECHOLNPGM("?Specified X,Y coordinate out of bounds.");
|
||||
return;
|
||||
}
|
||||
@ -695,7 +691,7 @@ void GcodeSuite::G26() {
|
||||
#error "A_CNT must be a positive value. Please change A_INT."
|
||||
#endif
|
||||
float trig_table[A_CNT];
|
||||
for (uint8_t i = 0; i < A_CNT; i++)
|
||||
LOOP_L_N(i, A_CNT)
|
||||
trig_table[i] = INTERSECTION_CIRCLE_RADIUS * cos(RADIANS(i * A_INT));
|
||||
|
||||
#endif // !ARC_SUPPORT
|
||||
@ -703,7 +699,7 @@ void GcodeSuite::G26() {
|
||||
mesh_index_pair location;
|
||||
do {
|
||||
// Find the nearest confluence
|
||||
location = find_closest_circle_to_print(g26_continue_with_closest ? xy_pos_t(current_position) : g26_pos);
|
||||
location = find_closest_circle_to_print(g26_continue_with_closest ? xy_pos_t(current_position) : g26_xy_pos);
|
||||
|
||||
if (location.valid()) {
|
||||
const xy_pos_t circle = _GET_MESH_POS(location.pos);
|
||||
@ -834,12 +830,9 @@ void GcodeSuite::G26() {
|
||||
|
||||
retract_filament(destination);
|
||||
destination.z = Z_CLEARANCE_BETWEEN_PROBES;
|
||||
move_to(destination, 0); // Raise the nozzle
|
||||
|
||||
move_to(destination, 0); // Raise the nozzle
|
||||
|
||||
destination.set(g26_pos.x, g26_pos.y); // Move back to the starting position
|
||||
//destination.z = Z_CLEARANCE_BETWEEN_PROBES; // Keep the nozzle where it is
|
||||
|
||||
destination = g26_xy_pos; // Move back to the starting XY position
|
||||
move_to(destination, 0); // Move back to the starting position
|
||||
|
||||
#if DISABLED(NO_VOLUMETRICS)
|
||||
|
@ -71,13 +71,12 @@ void GcodeSuite::M420() {
|
||||
bilinear_grid_spacing.set((x_max - x_min) / (GRID_MAX_POINTS_X - 1),
|
||||
(y_max - y_min) / (GRID_MAX_POINTS_Y - 1));
|
||||
#endif
|
||||
for (uint8_t x = 0; x < GRID_MAX_POINTS_X; x++)
|
||||
for (uint8_t y = 0; y < GRID_MAX_POINTS_Y; y++) {
|
||||
Z_VALUES(x, y) = 0.001 * random(-200, 200);
|
||||
#if ENABLED(EXTENSIBLE_UI)
|
||||
ExtUI::onMeshUpdate(x, y, Z_VALUES(x, y));
|
||||
#endif
|
||||
}
|
||||
GRID_LOOP(x, y) {
|
||||
Z_VALUES(x, y) = 0.001 * random(-200, 200);
|
||||
#if ENABLED(EXTENSIBLE_UI)
|
||||
ExtUI::onMeshUpdate(x, y, Z_VALUES(x, y));
|
||||
#endif
|
||||
}
|
||||
SERIAL_ECHOPGM("Simulated " STRINGIFY(GRID_MAX_POINTS_X) "x" STRINGIFY(GRID_MAX_POINTS_Y) " mesh ");
|
||||
SERIAL_ECHOPAIR(" (", x_min);
|
||||
SERIAL_CHAR(','); SERIAL_ECHO(y_min);
|
||||
|
@ -746,7 +746,7 @@ G29_TYPE GcodeSuite::G29() {
|
||||
|
||||
// Probe at 3 arbitrary points
|
||||
|
||||
for (uint8_t i = 0; i < 3; ++i) {
|
||||
LOOP_L_N(i, 3) {
|
||||
if (verbose_level) SERIAL_ECHOLNPAIR("Probing point ", int(i), "/3.");
|
||||
#if HAS_DISPLAY
|
||||
ui.status_printf_P(0, PSTR(S_FMT " %i/3"), GET_TEXT(MSG_PROBING_MESH), int(i));
|
||||
@ -861,7 +861,7 @@ G29_TYPE GcodeSuite::G29() {
|
||||
auto print_topo_map = [&](PGM_P const title, const bool get_min) {
|
||||
serialprintPGM(title);
|
||||
for (int8_t yy = abl_grid_points.y - 1; yy >= 0; yy--) {
|
||||
for (uint8_t xx = 0; xx < abl_grid_points.x; xx++) {
|
||||
LOOP_L_N(xx, abl_grid_points.x) {
|
||||
const int ind = indexIntoAB[xx][yy];
|
||||
xyz_float_t tmp = { eqnAMatrix[ind + 0 * abl_points],
|
||||
eqnAMatrix[ind + 1 * abl_points], 0 };
|
||||
|
@ -124,7 +124,7 @@ inline void park_above_object(measurements_t &m, const float uncertainty) {
|
||||
#if HAS_HOTEND_OFFSET
|
||||
|
||||
inline void normalize_hotend_offsets() {
|
||||
for (uint8_t e = 1; e < HOTENDS; e++)
|
||||
LOOP_S_L_N(e, 1, HOTENDS)
|
||||
hotend_offset[e] -= hotend_offset[0];
|
||||
hotend_offset[0].reset();
|
||||
}
|
||||
@ -393,7 +393,7 @@ inline void probe_sides(measurements_t &m, const float uncertainty) {
|
||||
// This function requires normalize_hotend_offsets() to be called
|
||||
//
|
||||
inline void report_hotend_offsets() {
|
||||
for (uint8_t e = 1; e < HOTENDS; e++)
|
||||
LOOP_S_L_N(e, 1, HOTENDS)
|
||||
SERIAL_ECHOLNPAIR_P(PSTR("T"), int(e), PSTR(" Hotend Offset X"), hotend_offset[e].x, SP_Y_STR, hotend_offset[e].y, SP_Z_STR, hotend_offset[e].z);
|
||||
}
|
||||
#endif
|
||||
|
@ -158,14 +158,14 @@ inline int32_t count_test_bytes(const char * const start_free_memory) {
|
||||
while (start_free_memory < end_free_memory) {
|
||||
print_hex_address(start_free_memory); // Print the address
|
||||
SERIAL_CHAR(':');
|
||||
for (uint8_t i = 0; i < 16; i++) { // and 16 data bytes
|
||||
LOOP_L_N(i, 16) { // and 16 data bytes
|
||||
if (i == 8) SERIAL_CHAR('-');
|
||||
print_hex_byte(start_free_memory[i]);
|
||||
SERIAL_CHAR(' ');
|
||||
}
|
||||
serial_delay(25);
|
||||
SERIAL_CHAR('|'); // Point out non test bytes
|
||||
for (uint8_t i = 0; i < 16; i++) {
|
||||
LOOP_L_N(i, 16) {
|
||||
char ccc = (char)start_free_memory[i]; // cast to char before automatically casting to char on assignment, in case the compiler is broken
|
||||
ccc = (ccc == TEST_BYTE) ? ' ' : '?';
|
||||
SERIAL_CHAR(ccc);
|
||||
|
@ -126,7 +126,7 @@ void GcodeSuite::M48() {
|
||||
if (probing_good) {
|
||||
randomSeed(millis());
|
||||
|
||||
for (uint8_t n = 0; n < n_samples; n++) {
|
||||
LOOP_L_N(n, n_samples) {
|
||||
#if HAS_SPI_LCD
|
||||
// Display M48 progress in the status bar
|
||||
ui.status_printf_P(0, PSTR(S_FMT ": %d/%d"), GET_TEXT(MSG_M48_POINT), int(n + 1), int(n_samples));
|
||||
@ -149,7 +149,7 @@ void GcodeSuite::M48() {
|
||||
SERIAL_ECHOLNPGM("CW");
|
||||
}
|
||||
|
||||
for (uint8_t l = 0; l < n_legs - 1; l++) {
|
||||
LOOP_L_N(l, n_legs - 1) {
|
||||
float delta_angle;
|
||||
|
||||
if (schizoid_flag) {
|
||||
@ -204,7 +204,7 @@ void GcodeSuite::M48() {
|
||||
* Get the current mean for the data points we have so far
|
||||
*/
|
||||
float sum = 0.0;
|
||||
for (uint8_t j = 0; j <= n; j++) sum += sample_set[j];
|
||||
LOOP_LE_N(j, n) sum += sample_set[j];
|
||||
mean = sum / (n + 1);
|
||||
|
||||
NOMORE(min, sample_set[n]);
|
||||
@ -215,7 +215,7 @@ void GcodeSuite::M48() {
|
||||
* data points we have so far
|
||||
*/
|
||||
sum = 0.0;
|
||||
for (uint8_t j = 0; j <= n; j++)
|
||||
LOOP_LE_N(j, n)
|
||||
sum += sq(sample_set[j] - mean);
|
||||
|
||||
sigma = SQRT(sum / (n + 1));
|
||||
|
@ -71,7 +71,7 @@ void GcodeSuite::M305() {
|
||||
SERIAL_ECHO_MSG("!Invalid Steinhart-Hart C coeff. (-0.01 < C < +0.01)");
|
||||
} // If not setting then report parameters
|
||||
else if (t_index < 0) { // ...all user thermistors
|
||||
for (uint8_t i = 0; i < USER_THERMISTORS; i++)
|
||||
LOOP_L_N(i, USER_THERMISTORS)
|
||||
thermalManager.log_user_thermistor(i);
|
||||
}
|
||||
else // ...one user thermistor
|
||||
|
@ -57,7 +57,7 @@ inline void toggle_pins() {
|
||||
end = PARSED_PIN_INDEX('L', NUM_DIGITAL_PINS - 1),
|
||||
wait = parser.intval('W', 500);
|
||||
|
||||
for (uint8_t i = start; i <= end; i++) {
|
||||
LOOP_S_LE_N(i, start, end) {
|
||||
pin_t pin = GET_PIN_MAP_PIN_M43(i);
|
||||
if (!VALID_PIN(pin)) continue;
|
||||
if (M43_NEVER_TOUCH(i) || (!ignore_protection && pin_is_protected(pin))) {
|
||||
@ -313,7 +313,7 @@ void GcodeSuite::M43() {
|
||||
NOLESS(first_pin, 2); // Don't hijack the UART pins
|
||||
#endif
|
||||
uint8_t pin_state[last_pin - first_pin + 1];
|
||||
for (uint8_t i = first_pin; i <= last_pin; i++) {
|
||||
LOOP_S_LE_N(i, first_pin, last_pin) {
|
||||
pin_t pin = GET_PIN_MAP_PIN_M43(i);
|
||||
if (!VALID_PIN(pin)) continue;
|
||||
if (M43_NEVER_TOUCH(i) || (!ignore_protection && pin_is_protected(pin))) continue;
|
||||
@ -339,7 +339,7 @@ void GcodeSuite::M43() {
|
||||
#endif
|
||||
|
||||
for (;;) {
|
||||
for (uint8_t i = first_pin; i <= last_pin; i++) {
|
||||
LOOP_S_LE_N(i, first_pin, last_pin) {
|
||||
pin_t pin = GET_PIN_MAP_PIN_M43(i);
|
||||
if (!VALID_PIN(pin)) continue;
|
||||
if (M43_NEVER_TOUCH(i) || (!ignore_protection && pin_is_protected(pin))) continue;
|
||||
@ -365,7 +365,7 @@ void GcodeSuite::M43() {
|
||||
}
|
||||
else {
|
||||
// Report current state of selected pin(s)
|
||||
for (uint8_t i = first_pin; i <= last_pin; i++) {
|
||||
LOOP_S_LE_N(i, first_pin, last_pin) {
|
||||
pin_t pin = GET_PIN_MAP_PIN_M43(i);
|
||||
if (VALID_PIN(pin)) report_pin_state_extended(pin, ignore_protection, true);
|
||||
}
|
||||
|
@ -62,7 +62,7 @@
|
||||
// b3 b2 b1 b0 ~b0 ... lo bits, NOT last bit
|
||||
//
|
||||
void M672_send(uint8_t b) { // bit rate requirement: 1KHz +/- 30%
|
||||
for (uint8_t bits = 0; bits < 14; bits++) {
|
||||
LOOP_L_N(bits, 14) {
|
||||
switch (bits) {
|
||||
default: { OUT_WRITE(SMART_EFFECTOR_MOD_PIN, !!(b & 0x80)); b <<= 1; break; } // send bit, shift next into place
|
||||
case 7:
|
||||
|
@ -34,7 +34,7 @@ void report_M92(const bool echo=true, const int8_t e=-1) {
|
||||
SERIAL_EOL();
|
||||
|
||||
#if ENABLED(DISTINCT_E_FACTORS)
|
||||
for (uint8_t i = 0; i < E_STEPPERS; i++) {
|
||||
LOOP_L_N(i, E_STEPPERS) {
|
||||
if (e >= 0 && i != e) continue;
|
||||
if (echo) SERIAL_ECHO_START(); else SERIAL_CHAR(' ');
|
||||
SERIAL_ECHOLNPAIR_P(PSTR(" M92 T"), (int)i,
|
||||
|
@ -49,7 +49,7 @@ void GcodeSuite::M111() {
|
||||
SERIAL_ECHOPGM(STR_DEBUG_PREFIX);
|
||||
if (marlin_debug_flags) {
|
||||
uint8_t comma = 0;
|
||||
for (uint8_t i = 0; i < COUNT(debug_strings); i++) {
|
||||
LOOP_L_N(i, COUNT(debug_strings)) {
|
||||
if (TEST(marlin_debug_flags, i)) {
|
||||
if (comma++) SERIAL_CHAR(',');
|
||||
serialprintPGM((char*)pgm_read_ptr(&debug_strings[i]));
|
||||
|
@ -33,7 +33,7 @@
|
||||
* Warning: Steps-per-unit remains unchanged.
|
||||
*/
|
||||
void GcodeSuite::M350() {
|
||||
if (parser.seen('S')) for (uint8_t i = 0; i <= 4; i++) stepper.microstep_mode(i, parser.value_byte());
|
||||
if (parser.seen('S')) LOOP_LE_N(i, 4) stepper.microstep_mode(i, parser.value_byte());
|
||||
LOOP_XYZE(i) if (parser.seen(axis_codes[i])) stepper.microstep_mode(i, parser.value_byte());
|
||||
if (parser.seen('B')) stepper.microstep_mode(4, parser.value_byte());
|
||||
stepper.microstep_readings();
|
||||
|
@ -90,7 +90,7 @@
|
||||
|
||||
inline void spin_photo_pin() {
|
||||
static constexpr uint32_t sequence[] = PHOTO_PULSES_US;
|
||||
for (uint8_t i = 0; i < COUNT(sequence); i++)
|
||||
LOOP_L_N(i, COUNT(sequence))
|
||||
pulse_photo_pin(sequence[i], !(i & 1));
|
||||
}
|
||||
|
||||
|
@ -46,7 +46,7 @@ void GcodeSuite::M907() {
|
||||
|
||||
LOOP_XYZE(i) if (parser.seenval(axis_codes[i])) stepper.digipot_current(i, parser.value_int());
|
||||
if (parser.seenval('B')) stepper.digipot_current(4, parser.value_int());
|
||||
if (parser.seenval('S')) for (uint8_t i = 0; i <= 4; i++) stepper.digipot_current(i, parser.value_int());
|
||||
if (parser.seenval('S')) LOOP_LE_N(i, 4) stepper.digipot_current(i, parser.value_int());
|
||||
|
||||
#elif HAS_MOTOR_CURRENT_PWM
|
||||
|
||||
@ -74,7 +74,7 @@ void GcodeSuite::M907() {
|
||||
#if ENABLED(DAC_STEPPER_CURRENT)
|
||||
if (parser.seenval('S')) {
|
||||
const float dac_percent = parser.value_float();
|
||||
for (uint8_t i = 0; i <= 4; i++) dac_current_percent(i, dac_percent);
|
||||
LOOP_LE_N(i, 4) dac_current_percent(i, dac_percent);
|
||||
}
|
||||
LOOP_XYZE(i) if (parser.seenval(axis_codes[i])) dac_current_percent(i, parser.value_float());
|
||||
#endif
|
||||
|
@ -79,7 +79,7 @@ void GcodeSuite::M7219() {
|
||||
}
|
||||
|
||||
if (parser.seen('P')) {
|
||||
for (uint8_t r = 0; r < MAX7219_LINES; r++) {
|
||||
LOOP_L_N(r, MAX7219_LINES) {
|
||||
SERIAL_ECHOPGM("led_line[");
|
||||
if (r < 10) SERIAL_CHAR(' ');
|
||||
SERIAL_ECHO(int(r));
|
||||
|
@ -36,7 +36,7 @@
|
||||
|
||||
void report_xyze(const xyze_pos_t &pos, const uint8_t n=XYZE, const uint8_t precision=3) {
|
||||
char str[12];
|
||||
for (uint8_t a = 0; a < n; a++) {
|
||||
LOOP_L_N(a, n) {
|
||||
SERIAL_CHAR(' ', axis_codes[a], ':');
|
||||
SERIAL_ECHO(dtostrf(pos[a], 1, precision, str));
|
||||
}
|
||||
|
@ -94,7 +94,7 @@ static PGM_P injected_commands_P = nullptr;
|
||||
|
||||
GCodeQueue::GCodeQueue() {
|
||||
// Send "ok" after commands by default
|
||||
for (uint8_t i = 0; i < COUNT(send_ok); i++) send_ok[i] = true;
|
||||
LOOP_L_N(i, COUNT(send_ok)) send_ok[i] = true;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -427,7 +427,7 @@ void GCodeQueue::get_serial_commands() {
|
||||
* Loop while serial characters are incoming and the queue is not full
|
||||
*/
|
||||
while (length < BUFSIZE && serial_data_available()) {
|
||||
for (uint8_t i = 0; i < NUM_SERIAL; ++i) {
|
||||
LOOP_L_N(i, NUM_SERIAL) {
|
||||
|
||||
const int c = read_serial(i);
|
||||
if (c < 0) continue;
|
||||
|
Reference in New Issue
Block a user