Round seg period, removed dead code
authorJoseph Coffland <joseph@cauldrondevelopment.com>
Wed, 21 Sep 2016 16:08:55 +0000 (09:08 -0700)
committerJoseph Coffland <joseph@cauldrondevelopment.com>
Wed, 21 Sep 2016 16:08:55 +0000 (09:08 -0700)
src/motor.c
src/stepper.c

index 78d90ab8982b83e3d7d7232c829c7ddb83869011..a39be7d3e8ba5ab438c1dbf61ef75203d3f63bb5 100644 (file)
@@ -403,21 +403,6 @@ stat_t motor_prep_move(int motor, int32_t clocks, float target, int32_t error) {
   if (isinf(target)) return ALARM(STAT_MOVE_TARGET_INFINITE);
   if (isnan(target)) return ALARM(STAT_MOVE_TARGET_NAN);
 
-  // Compute error correction
-#if 0
-  cli();
-  int32_t error = m->error;
-  int32_t actual_error = error;
-  if (error < -MAX_STEP_CORRECTION) error = -MAX_STEP_CORRECTION;
-  else if (MAX_STEP_CORRECTION < error) error = MAX_STEP_CORRECTION;
-  sei();
-
-  if (100 < labs(actual_error)) {
-    STATUS_DEBUG("Motor %d error is %ld", motor, actual_error);
-    return ALARM(STAT_EXCESSIVE_MOVE_ERROR);
-  }
-#endif
-
   // Compute motor timer clock and period. Rounding is performed to eliminate
   // a negative bias in the uint32_t conversion that results in long-term
   // negative drift.
index 488e6674b1854eeb5fffed491f7accbf04bba9aa..aad14a5f61ad3d83c8b5af84f21bed5672a50384 100644 (file)
@@ -204,7 +204,7 @@ stat_t st_prep_line(float time, const float target[], const int32_t error[]) {
 
   // Setup segment parameters
   st.move_type = MOVE_TYPE_ALINE;
-  st.seg_period = time * 60 * STEP_TIMER_FREQ; // Must fit 16-bit
+  st.seg_period = round(time * 60 * STEP_TIMER_FREQ); // Must fit 16-bit
   int32_t seg_clocks = (int32_t)st.seg_period * STEP_TIMER_DIV;
 
   // Prepare motor moves