From 87e7f219ddd74b7e4764f23fb70fcdaba95c8897 Mon Sep 17 00:00:00 2001 From: leo Date: Sat, 14 Oct 2023 16:12:56 +0200 Subject: [PATCH] fix reverse dir --- Core/Src/home_screen.c | 2 +- Core/Src/pse_stepper_planer.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) 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