added basic accelleration management with trapezoid accelleration profiles but no look ahead optimization (coming next patch)

This commit is contained in:
Simen Svale Skogsrud
2011-01-14 12:10:18 +01:00
parent e0f3dcbe43
commit b628a4aabf
14 changed files with 129 additions and 108 deletions

View File

@@ -32,19 +32,10 @@ void reset_settings() {
settings.steps_per_mm[2] = Z_STEPS_PER_MM;
settings.pulse_microseconds = STEP_PULSE_MICROSECONDS;
settings.default_feed_rate = DEFAULT_FEEDRATE;
<<<<<<< Updated upstream
settings.default_seek_rate = RAPID_FEEDRATE;
settings.dead_feed_rate = DEFAULT_FEEDRATE/5;
settings.acceleration = DEFAULT_FEEDRATE/100;
settings.acceleration = DEFAULT_ACCELERATION;
settings.mm_per_arc_segment = MM_PER_ARC_SEGMENT;
settings.invert_mask = STEPPING_INVERT_MASK;
=======
settings.seek_rate = DEFAULT_SEEKRATE;
settings.mm_per_arc_segment = DEFAULT_MM_PER_ARC_SEGMENT;
settings.invert_mask = 0;
settings.max_jerk = DEFAULT_MAX_JERK;
settings.accelleration = DEFAULT_ACCELLERATION;
>>>>>>> Stashed changes
}
void dump_settings() {
@@ -53,15 +44,13 @@ void dump_settings() {
printPgmString(PSTR(" (steps/mm y)\r\n$2 = ")); printFloat(settings.steps_per_mm[2]);
printPgmString(PSTR(" (steps/mm z)\r\n$3 = ")); printInteger(settings.pulse_microseconds);
printPgmString(PSTR(" (microseconds step pulse)\r\n$4 = ")); printFloat(settings.default_feed_rate);
printPgmString(PSTR(" (mm/sec default feed rate)\r\n$5 = ")); printFloat(settings.default_seek_rate);
printPgmString(PSTR(" (mm/sec default seek rate)\r\n$7 = ")); printFloat(settings.dead_feed_rate);
printPgmString(PSTR(" (mm/sec max start and stop feed rate)\r\n$8 = ")); printFloat(settings.mm_per_arc_segment);
printPgmString(PSTR(" (mm/sec^2 max acceleration)\r\n$9 = ")); printFloat(settings.acceleration);
printPgmString(PSTR(" (mm/arc segment)\r\n$10 = ")); printInteger(settings.invert_mask);
printPgmString(PSTR(" (mm/min default feed rate)\r\n$5 = ")); printFloat(settings.default_seek_rate);
printPgmString(PSTR(" (mm/min default seek rate)\r\n$6 = ")); printFloat(settings.mm_per_arc_segment);
printPgmString(PSTR(" (mm/min^2 max acceleration)\r\n$7 = ")); printFloat(settings.acceleration);
printPgmString(PSTR(" (mm/arc segment)\r\n$8 = ")); printInteger(settings.invert_mask);
printPgmString(PSTR(" (step port invert mask. binary = ")); printIntegerInBase(settings.invert_mask, 2);
printPgmString(PSTR(")\n\r$8 = ")); printFloat(settings.max_jerk);
printPgmString(PSTR(" (max jerk in delta mm/second)\r\n$9 = ")); printFloat(settings.accelleration);
printPgmString(PSTR(" (accelleration in mm/second^2)"));
printPgmString(PSTR(")\r\n$9 = ")); printFloat(settings.acceleration);
printPgmString(PSTR(" (acceleration in mm/min^2)"));
printPgmString(PSTR("\r\n'$x=value' to set parameter or just '$' to dump current settings\r\n"));
}
@@ -88,22 +77,14 @@ void store_setting(int parameter, double value) {
settings.steps_per_mm[parameter] = value; break;
case 3: settings.pulse_microseconds = round(value); break;
case 4: settings.default_feed_rate = value; break;
<<<<<<< Updated upstream
case 5: settings.default_seek_rate = value; break;
case 6: settings.dead_feed_rate = value; break;
case 8: settings.mm_per_arc_segment = value; break;
case 9: settings.acceleration = value; break;
case 10: settings.invert_mask = trunc(value); break;
=======
case 5: settings.seek_rate = value; break;
case 6: settings.mm_per_arc_segment = value; break;
case 7: settings.invert_mask = trunc(value); break;
case 8: settings.max_jerk = value; break;
case 9: settings.accelleration = fabs(value); break;
>>>>>>> Stashed changes
case 7: settings.acceleration = value; break;
case 8: settings.invert_mask = trunc(value); break;
case 9: settings.acceleration = fabs(value); break;
default:
printPgmString(PSTR("Unknown parameter\r\n"));
return;
printPgmString(PSTR("Unknown parameter\r\n"));
return;
}
write_settings();
printPgmString(PSTR("Stored new setting\r\n"));