|
@ -590,29 +590,29 @@ void Stepper::set_directions() { |
|
|
* uint16_t t; |
|
|
* uint16_t t; |
|
|
* umul24x24to16hi(t, bezier_AV, curr_step); // t: Range 0 - 1^16 = 16 bits
|
|
|
* umul24x24to16hi(t, bezier_AV, curr_step); // t: Range 0 - 1^16 = 16 bits
|
|
|
* uint16_t f = t; |
|
|
* uint16_t f = t; |
|
|
* umul16x16to16hi(f, f, t); // Range 16 bits (unsigned)
|
|
|
* umul16x16to16hi(f, f, t); // Range 16 bits (unsigned)
|
|
|
* umul16x16to16hi(f, f, t); // Range 16 bits : f = t^3 (unsigned)
|
|
|
* umul16x16to16hi(f, f, t); // Range 16 bits : f = t^3 (unsigned)
|
|
|
* uint24_t acc = bezier_F; // Range 20 bits (unsigned)
|
|
|
* uint24_t acc = bezier_F; // Range 20 bits (unsigned)
|
|
|
* if (A_negative) { |
|
|
* if (A_negative) { |
|
|
* uint24_t v; |
|
|
* uint24_t v; |
|
|
* umul16x24to24hi(v, f, bezier_C); // Range 21bits
|
|
|
* umul16x24to24hi(v, f, bezier_C); // Range 21bits
|
|
|
* acc -= v; |
|
|
* acc -= v; |
|
|
* umul16x16to16hi(f, f, t); // Range 16 bits : f = t^4 (unsigned)
|
|
|
* umul16x16to16hi(f, f, t); // Range 16 bits : f = t^4 (unsigned)
|
|
|
* umul16x24to24hi(v, f, bezier_B); // Range 22bits
|
|
|
* umul16x24to24hi(v, f, bezier_B); // Range 22bits
|
|
|
* acc += v; |
|
|
* acc += v; |
|
|
* umul16x16to16hi(f, f, t); // Range 16 bits : f = t^5 (unsigned)
|
|
|
* umul16x16to16hi(f, f, t); // Range 16 bits : f = t^5 (unsigned)
|
|
|
* umul16x24to24hi(v, f, bezier_A); // Range 21bits + 15 = 36bits (plus sign)
|
|
|
* umul16x24to24hi(v, f, bezier_A); // Range 21bits + 15 = 36bits (plus sign)
|
|
|
* acc -= v; |
|
|
* acc -= v; |
|
|
* } |
|
|
* } |
|
|
* else { |
|
|
* else { |
|
|
* uint24_t v; |
|
|
* uint24_t v; |
|
|
* umul16x24to24hi(v, f, bezier_C); // Range 21bits
|
|
|
* umul16x24to24hi(v, f, bezier_C); // Range 21bits
|
|
|
* acc += v; |
|
|
* acc += v; |
|
|
* umul16x16to16hi(f, f, t); // Range 16 bits : f = t^4 (unsigned)
|
|
|
* umul16x16to16hi(f, f, t); // Range 16 bits : f = t^4 (unsigned)
|
|
|
* umul16x24to24hi(v, f, bezier_B); // Range 22bits
|
|
|
* umul16x24to24hi(v, f, bezier_B); // Range 22bits
|
|
|
* acc -= v; |
|
|
* acc -= v; |
|
|
* umul16x16to16hi(f, f, t); // Range 16 bits : f = t^5 (unsigned)
|
|
|
* umul16x16to16hi(f, f, t); // Range 16 bits : f = t^5 (unsigned)
|
|
|
* umul16x24to24hi(v, f, bezier_A); // Range 21bits + 15 = 36bits (plus sign)
|
|
|
* umul16x24to24hi(v, f, bezier_A); // Range 21bits + 15 = 36bits (plus sign)
|
|
|
* acc += v; |
|
|
* acc += v; |
|
|
* } |
|
|
* } |
|
|
* return acc; |
|
|
* return acc; |
|
|