Browse Source

Merge pull request #4754 from thinkyhead/rc_mixing_regression

Unify counter_m and counter_M
pull/1/head
Scott Lahteine 8 years ago
committed by GitHub
parent
commit
6f71bd7372
  1. 22
      Marlin/stepper.cpp
  2. 2
      Marlin/stepper.h

22
Marlin/stepper.cpp

@ -115,7 +115,7 @@ volatile long Stepper::count_position[NUM_AXIS] = { 0 };
volatile signed char Stepper::count_direction[NUM_AXIS] = { 1, 1, 1, 1 };
#if ENABLED(MIXING_EXTRUDER)
long Stepper::counter_M[MIXING_STEPPERS];
long Stepper::counter_m[MIXING_STEPPERS];
#endif
unsigned short Stepper::acc_step_rate; // needed for deceleration start point
@ -340,7 +340,7 @@ void Stepper::isr() {
#if ENABLED(MIXING_EXTRUDER)
MIXING_STEPPERS_LOOP(i)
counter_M[i] = -(current_block->mix_event_count[i] >> 1);
counter_m[i] = -(current_block->mix_event_count[i] >> 1);
#endif
step_events_completed = 0;
@ -392,12 +392,12 @@ void Stepper::isr() {
#if ENABLED(MIXING_EXTRUDER)
// Step mixing steppers proportionally
long dir = motor_direction(E_AXIS) ? -1 : 1;
bool dir = motor_direction(E_AXIS);
MIXING_STEPPERS_LOOP(j) {
counter_m[j] += current_block->steps[E_AXIS];
if (counter_m[j] > 0) {
counter_m[j] -= current_block->mix_event_count[j];
e_steps[j] += dir;
dir ? --e_steps[j] : ++e_steps[j];
}
}
#endif
@ -433,12 +433,12 @@ void Stepper::isr() {
#if ENABLED(MIXING_EXTRUDER)
// Step mixing steppers proportionally
long dir = motor_direction(E_AXIS) ? -1 : 1;
bool dir = motor_direction(E_AXIS);
MIXING_STEPPERS_LOOP(j) {
counter_m[j] += current_block->steps[E_AXIS];
if (counter_m[j] > 0) {
counter_m[j] -= current_block->mix_event_count[j];
e_steps[j] += dir;
dir ? --e_steps[j] : ++e_steps[j];
}
}
@ -487,9 +487,9 @@ void Stepper::isr() {
// Tick the counters used for this mix
MIXING_STEPPERS_LOOP(j) {
// Step mixing steppers (proportionally)
counter_M[j] += current_block->steps[E_AXIS];
counter_m[j] += current_block->steps[E_AXIS];
// Step when the counter goes over zero
if (counter_M[j] > 0) En_STEP_WRITE(j, !INVERT_E_STEP_PIN);
if (counter_m[j] > 0) En_STEP_WRITE(j, !INVERT_E_STEP_PIN);
}
#else // !MIXING_EXTRUDER
PULSE_START(E);
@ -520,8 +520,8 @@ void Stepper::isr() {
count_position[E_AXIS] += count_direction[E_AXIS];
}
MIXING_STEPPERS_LOOP(j) {
if (counter_M[j] > 0) {
counter_M[j] -= current_block->mix_event_count[j];
if (counter_m[j] > 0) {
counter_m[j] -= current_block->mix_event_count[j];
En_STEP_WRITE(j, INVERT_E_STEP_PIN);
}
}
@ -691,7 +691,7 @@ void Stepper::isr() {
#define STOP_E_PULSE(INDEX) \
if (e_steps[INDEX]) { \
e_steps[INDEX] < 0 ? ++e_steps[INDEX] : --e_steps[INDEX]; \
e_steps[INDEX] <= 0 ? ++e_steps[INDEX] : --e_steps[INDEX]; \
E## INDEX ##_STEP_WRITE(!INVERT_E_STEP_PIN); \
}

2
Marlin/stepper.h

@ -152,7 +152,7 @@ class Stepper {
// Mixing extruder mix counters
//
#if ENABLED(MIXING_EXTRUDER)
static long counter_M[MIXING_STEPPERS];
static long counter_m[MIXING_STEPPERS];
#define MIXING_STEPPERS_LOOP(VAR) \
for (uint8_t VAR = 0; VAR < MIXING_STEPPERS; VAR++) \
if (current_block->mix_event_count[VAR])

Loading…
Cancel
Save