From a46acb9bf37f4621baa4ce65bc0bcbbd8bb63fd5 Mon Sep 17 00:00:00 2001 From: sunbeam Date: Sat, 31 Aug 2024 15:42:56 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=94=B5=E6=9C=BA=E9=94=99?= =?UTF-8?q?=E8=AF=AF=E6=97=B6=E6=B2=A1=E6=9C=89=E8=87=AA=E5=8A=A8=E5=81=9C?= =?UTF-8?q?=E6=AD=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BCZT/user/MotorCtrl.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/BCZT/user/MotorCtrl.c b/BCZT/user/MotorCtrl.c index de793d9..6e5c86c 100644 --- a/BCZT/user/MotorCtrl.c +++ b/BCZT/user/MotorCtrl.c @@ -141,7 +141,7 @@ void setMotorState(uint8_t motorid,uint8_t act) uint16_t MotorTarget[6] = {0}; void setMotorTarget(uint8_t motorid,uint16_t target) { - if (MotorHardStop1[motorid]!=0 && MotorHardStop2[motorid]!=0) + if (MotorHardStop1[motorid]!=0 && MotorHardStop2[motorid]!=0 && MotorErr[motorid] != 0) { MotorTarget[motorid] = target; } @@ -765,6 +765,11 @@ void MotorCtrl(void)//10ms MotorStateReal[i] = MotorState[i]; if (MotorState[i] == ACT_NOACT && MotorHardStop1[i] != 0 && MotorHardStop2[i] != 0 ) { + if (MotorErr[i] != 0) + { + MotorTarget[i] = 0; + } + if (MotorTarget[i]!=0 && MotorHardStop1[i] > MotorTarget[i] && MotorTarget[i] > MotorHardStop2[i]) { if (MotorTarget[i] > MotorHallLoc[i]+10) @@ -970,6 +975,7 @@ void HallDetecte(void) { HallErrorCount[i] = 500; MotorErr[i] = 1; + MotorTarget[i] = 0; } }