// our point structure to make things nice. struct LongPoint { long x; long y; long z; }; struct FloatPoint { float x; float y; float z; }; FloatPoint current_units; FloatPoint target_units; FloatPoint delta_units; FloatPoint current_steps; FloatPoint target_steps; FloatPoint delta_steps; boolean abs_mode = false; //0 = incremental; 1 = absolute //default to mm for units float x_units = X_STEPS_PER_MM; float y_units = Y_STEPS_PER_MM; float z_units = Z_STEPS_PER_MM; float curve_section = CURVE_SECTION_MM; //our direction vars byte x_direction = 1; byte y_direction = 1; byte z_direction = 1; //init our string processing void init_process_string() { //init our command for (byte i=0; i 0) feedrate_micros = calculate_feedrate_delay(feedrate); //nope, no feedrate else feedrate_micros = getMaxSpeed(); } //use our max for normal moves. else feedrate_micros = getMaxSpeed(); } //nope, just coordinates! else { //do we have a feedrate yet? if (feedrate > 0) feedrate_micros = calculate_feedrate_delay(feedrate); //nope, no feedrate else feedrate_micros = getMaxSpeed(); } }