dda.c: re-gain look-ahead compatibility.

We're here! Incredible high step rates as well as smooth
movements due to look-ahead.
This commit is contained in:
Markus Hitter 2013-10-26 21:15:41 +02:00
parent f0b9daeea0
commit c1a6c244b3
1 changed files with 10 additions and 6 deletions

16
dda.c
View File

@ -344,11 +344,18 @@ void dda_create(DDA *dda, TARGET *target, DDA *prev_dda) {
#ifdef LOOKAHEAD
dda_join_moves(prev_dda, dda);
dda->n = ACCELERATE_RAMP_LEN(dda->F_start);
if (dda->n == 0)
dda->c = C0;
else
dda->c = ((C0 >> 8) * int_inv_sqrt(dda->n)) >> 5;
if (dda->c < dda->c_min)
dda->c = dda->c_min;
#else
dda->n = 0;
dda->c = C0;
#endif
dda->n = 0;
dda->c = C0;
#elif defined ACCELERATION_TEMPORAL
// TODO: limit speed of individual axes to MAXIMUM_FEEDRATE
// TODO: calculate acceleration/deceleration for each axis
@ -659,9 +666,6 @@ void dda_step(DDA *dda) {
movement direction 500 times a second is easily enough for smooth and
accurate curves!
*/
#ifdef LOOKAHEAD
#error Look-ahead currently not supported. Turn it off or use an earlier commit.
#endif
void dda_clock() {
static volatile uint8_t busy = 0;
DDA *dda;