Fix filament sensor direction again

This commit is contained in:
Yuri D'Elia 2019-05-26 19:56:31 +02:00
parent 9d834925c0
commit 823f7b069c

View file

@ -951,14 +951,18 @@ FORCE_INLINE void advance_isr_scheduler() {
if (e_steps && (LA_phase < 0 || LA_phase == eisr)) {
uint8_t max_ticks = (eisr? e_step_loops: step_loops);
max_ticks = min(abs(e_steps), max_ticks);
bool rev = (e_steps < 0);
#ifdef FILAMENT_SENSOR
fsensor_counter += max_ticks;
if (count_direction[E_AXIS] == 1)
fsensor_counter += (rev? -max_ticks: max_ticks);
else
fsensor_counter -= (rev? -max_ticks: max_ticks);
#endif
WRITE_NC(E0_DIR_PIN, e_steps < 0? INVERT_E0_DIR: !INVERT_E0_DIR);
WRITE_NC(E0_DIR_PIN, rev? INVERT_E0_DIR: !INVERT_E0_DIR);
do
{
WRITE_NC(E0_STEP_PIN, !INVERT_E_STEP_PIN);
e_steps += (e_steps < 0)? 1: -1;
e_steps += (rev? 1: -1);
WRITE_NC(E0_STEP_PIN, INVERT_E_STEP_PIN);
}
while(--max_ticks);