v1.1添加按键功能的中文日志说明,改进了零点逻辑,之前回零成功后再次下发回零还会移动然后撞到限位开关,现在会正确保持在零点

This commit is contained in:
编程浩
2026-03-02 14:57:34 +08:00
parent b2fedd58b2
commit 25d82ccd66
8 changed files with 1821 additions and 1535 deletions

View File

@@ -1,4 +1,4 @@
#include "app_key.h"
#include "app_key.h"
#include <stddef.h>
/* 按键行为说明:
@@ -123,15 +123,15 @@ static void key_guard_check(Stepper_t *stepper)
est_pos_mm = key_estimate_pos_mm(stepper);
current_absolute_pos_mm = est_pos_mm;
xzero_active = key_home_switch_active();
if ((stepper->x_zero == 1u) && (xzero_active == 0u))
if (xzero_active == 1u)
{
/* 引脚当前未触发,清除可能因抖动造成的 EXTI 残留置位。 */
stepper->x_zero = 0u;
/* 引脚有效即锁存命中,避免短脉冲漏检。 */
stepper->x_zero = 1u;
}
if (s_home_active)
{
if ((stepper->x_zero == 1u) && (xzero_active == 1u))
if (stepper->x_zero == 1u)
{
local_motion_estop(stepper);
stepper->x_zero = 0u;
@@ -147,7 +147,7 @@ static void key_guard_check(Stepper_t *stepper)
debug_printf("[KEY] JOG+ reach soft limit %.1f mm", SOFT_LIMIT_MAX_MM);
}
else if ((s_jog_key == KEY_3) &&
((stepper->x_zero == 1u) && (xzero_active == 1u)))
(stepper->x_zero == 1u))
{
local_motion_stop_decel(stepper);
stepper->x_zero = 0u;