diff --git a/Core/Src/home_screen.c b/Core/Src/home_screen.c index cd0c637..0a81550 100644 --- a/Core/Src/home_screen.c +++ b/Core/Src/home_screen.c @@ -113,7 +113,7 @@ static void unit_home_handler(lv_event_t * e){ s->stop_at_limit = 1; s->stop_steps = 0; pse_sp_jog_speed(c, s, 1); - pse_sp_set_dir(c, s->steps_counter < 0); + pse_sp_set_dir(unit, s->steps_counter < 0); pse_sp_start_axis(c, s); } } diff --git a/Core/Src/pse_stepper_planer.c b/Core/Src/pse_stepper_planer.c index 60c868f..59ba1b2 100644 --- a/Core/Src/pse_stepper_planer.c +++ b/Core/Src/pse_stepper_planer.c @@ -38,13 +38,13 @@ void pse_sp_stop_axis(pse_stepper_conf* conf){ void pse_sp_set_dir(pse_unit* unit, int dir){ pse_stepper_conf* conf = unit->stepper_conf; - HAL_GPIO_WritePin(conf->DIR_GPIO_Port, conf->DIR_GPIO_Pin, unit->reversed?-dir:dir); + HAL_GPIO_WritePin(conf->DIR_GPIO_Port, conf->DIR_GPIO_Pin, unit->reversed?(!dir):dir); } int pse_sp_get_dir(pse_unit* unit){ pse_stepper_conf* conf = unit->stepper_conf; int val = HAL_GPIO_ReadPin(conf->DIR_GPIO_Port, conf->DIR_GPIO_Pin); - return (unit->reversed?-val:val); + return (unit->reversed?(!val):val); } // https://en.wikipedia.org/wiki/Integer_square_root#Using_only_integer_division