diff --git a/Project/HC32F460/MDK/HC32F460.uvoptx b/Project/HC32F460/MDK/HC32F460.uvoptx
index 470fd12..5b7904c 100644
--- a/Project/HC32F460/MDK/HC32F460.uvoptx
+++ b/Project/HC32F460/MDK/HC32F460.uvoptx
@@ -153,24 +153,7 @@
UL2CM3(-S0 -C0 -P0 -FD1FFF8000 -FC1000 -FN2 -FF0HC32F460_512K -FS00 -FL080000 -FF1HC32F460_otp -FS13000C00 -FL13FC -FP0($$Device:HC32F460JETA$FlashARM\HC32F460_512K.FLM) -FP1($$Device:HC32F460JETA$FlashARM\HC32F460_otp.FLM))
-
-
- 0
- 0
- 504
- 1
- 32426
- 0
- 0
- 0
- 0
- 0
- 1
- ..\source\User\Src\main.c
-
- \\BombSensor\../source/User/Src/main.c\504
-
-
+
0
diff --git a/Project/HC32F460/source/User/Inc/main.h b/Project/HC32F460/source/User/Inc/main.h
index 7106d67..78b14f1 100644
--- a/Project/HC32F460/source/User/Inc/main.h
+++ b/Project/HC32F460/source/User/Inc/main.h
@@ -13,13 +13,13 @@
#define SLOPE_VPT 1000
#define PRESS_VPT 3
#define FOLLOW_VPT 10
-#define SHIELD_VPT 2
+#define SHIELD_VPT 1.5
#define EME_STOP_VPT 4000
#define CENTRE_FRONT_CNT 0
#define CENTRE_FRONT_SUM 0
#define CENTRE_FRONT_VPT 0
-#define CENTRE_VPT 0
+#define CENTRE_VPT 2000
#define STOP_TIME_MS 500
#define CENT_TIME_MS 200
@@ -60,6 +60,11 @@ typedef struct{
int32_t RightUpVPT;//右上设备阈值
int32_t RightLowVPT;//右下设备阈值
+ int32_t LeftUpShieldVPT; //左上屏蔽阈值
+ int32_t LeftLowShieldVPT; //左下屏蔽阈值
+ int32_t RightUpShieldVPT; //右上屏蔽阈值
+ int32_t RightLowShieldVPT; //右下屏蔽阈值
+
int32_t LeftUp_Org_AdZero;//左上设备原始AD零点
int32_t LeftLow_Org_AdZero;//左下设备原始AD零点
int32_t RightUp_Org_AdZero;//右上设备原始AD零点
@@ -97,12 +102,14 @@ typedef enum {
APP_STATUS_IDLE,
APP_STATUS_ON,
APP_STATUS_OFF,
+ APP_STATUS_START_BEEP,
APP_STATUS_MOTOR_INIT,
+ APP_STATUS_ZERO_MARKING,
APP_STATUS_WAIT_MOTOR_INIT,
APP_STATUS_WAIT_MOTOR_CALI_UP,
APP_STATUS_WAIT_MOTOR_CALI_DOWN,
APP_STATUS_WAIT_STEADY,
- APP_STATUS_ZERO_MARKING,
+ APP_STATUS_END_BEEP,
APP_STATUS_HEIGHT_CONTROL,
}AppStatus_m;
@@ -167,11 +174,6 @@ typedef struct {
int32_t RightUpCS1237_SlopeArray[SLOPE_CNT];
int32_t RightLowCS1237_SlopeArray[SLOPE_CNT];
- int32_t aaa;
- int32_t bbb;
- int32_t ccc;
- int32_t ddd;
-
bool WaitFlag;
}AppDetect_t;
extern AppDetect_t App;
diff --git a/Project/HC32F460/source/User/Src/main.c b/Project/HC32F460/source/User/Src/main.c
index 68e6320..f017eef 100644
--- a/Project/HC32F460/source/User/Src/main.c
+++ b/Project/HC32F460/source/User/Src/main.c
@@ -164,7 +164,7 @@ void GradeControl(ControlLevel_m level)
App.ADTrack.LeftUpVPT = 18000;
App.ADTrack.LeftLowVPT = 18000;
App.ADTrack.RightUpVPT = 18000;
- App.ADTrack.RightLowVPT = 18000;
+ App.ADTrack.RightLowVPT = 18000;
App.ADTrack.Stop_VPT = 15000;
break;}
@@ -173,7 +173,7 @@ void GradeControl(ControlLevel_m level)
App.ADTrack.LeftUpVPT = 25000;
App.ADTrack.LeftLowVPT = 25000;
App.ADTrack.RightUpVPT = 25000;
- App.ADTrack.RightLowVPT = 25000;
+ App.ADTrack.RightLowVPT = 25000;
App.ADTrack.Stop_VPT = 19000;
break;}
@@ -182,7 +182,7 @@ void GradeControl(ControlLevel_m level)
App.ADTrack.LeftUpVPT = 30000;
App.ADTrack.LeftLowVPT = 30000;
App.ADTrack.RightUpVPT = 30000;
- App.ADTrack.RightLowVPT = 30000;
+ App.ADTrack.RightLowVPT = 30000;
App.ADTrack.Stop_VPT = 25000;
break;}
}
@@ -257,19 +257,12 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
App.RightUpCS1237_SlopeArray[0] = ru_slope;
App.RightLowCS1237_SlopeArray[0] = rl_slope;
-// PeakValleyCheck lu_K = check_peaks_valleys(App.LeftUpCS1237_SlopeArray, SLOPE_CNT);
-// PeakValleyCheck ll_K = check_peaks_valleys(App.LeftLowCS1237_SlopeArray, SLOPE_CNT);
-// PeakValleyCheck ru_K = check_peaks_valleys(App.RightUpCS1237_SlopeArray, SLOPE_CNT);
-// PeakValleyCheck rl_K = check_peaks_valleys(App.RightLowCS1237_SlopeArray, SLOPE_CNT);
-
int32_t LeftSlopeSum = abs(App.LeftUpCS1237_SlopeArray[0]) + abs(App.LeftLowCS1237_SlopeArray[0]) + abs(App.LeftUpCS1237_SlopeArray[1]) + abs(App.LeftLowCS1237_SlopeArray[1]) + abs(App.LeftUpCS1237_SlopeArray[2]) + abs(App.LeftLowCS1237_SlopeArray[2]);
int32_t RightSlopeSum = abs(App.RightUpCS1237_SlopeArray[0]) + abs(App.RightLowCS1237_SlopeArray[0]) + abs(App.RightUpCS1237_SlopeArray[1]) + abs(App.RightLowCS1237_SlopeArray[1]) + abs(App.RightUpCS1237_SlopeArray[2]) + abs(App.RightLowCS1237_SlopeArray[2]);
int32_t LeftDiffSum = abs(lu_diff[0]) + abs(lu_diff[1]) + abs(lu_diff[2]) + abs(ll_diff[0]) + abs(ll_diff[1]) + abs(ll_diff[2]);
int32_t RightDiffSum = abs(ru_diff[0]) + abs(ru_diff[1]) + abs(ru_diff[2]) + abs(rl_diff[0]) + abs(rl_diff[1]) + abs(rl_diff[2]);
- int32_t LuSideDiff = lu_ad[0] - lu_ad[5];
- int32_t LlSideDiff = ll_ad[0] - ll_ad[5];
- int32_t RuSideDiff = ru_ad[0] - ru_ad[5];
- int32_t RlSideDiff = rl_ad[0] - rl_ad[5];
+ int32_t LeftDiff = abs(Oll_diff1) + abs(Olu_diff1) + abs(Oll_diff2) + abs(Olu_diff2) + abs(Oll_diff3) + abs(Olu_diff3);
+ int32_t RightDiff = abs(Orl_diff1) + abs(Oru_diff1) + abs(Orl_diff2) + abs(Oru_diff2) + abs(Orl_diff3) + abs(Oru_diff3);
if(App.EmeFlag == true)
{
@@ -297,41 +290,35 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
App.LeftRunFalg = false;
App.RightRunFalg = false;
App.CentreRunFalg = false;
- if(((lu_ad[0] < App.ADTrack.LeftUp_Org_AdZero-App.ddd)//判断中间操作
- && (ru_ad[0] < App.ADTrack.RightUp_Org_AdZero-App.ddd)
- && (lu_ad[1] < App.ADTrack.LeftUp_Org_AdZero-App.ddd)
- && (ru_ad[1] < App.ADTrack.RightUp_Org_AdZero-App.ddd)
- && (lu_ad[2] < App.ADTrack.LeftUp_Org_AdZero-App.ddd)
- && (ru_ad[2] < App.ADTrack.RightUp_Org_AdZero-App.ddd)
- && (ll_ad[0] > App.ADTrack.LeftLow_Org_AdZero+App.ddd)//判断中间操作
- && (rl_ad[0] > App.ADTrack.RightLow_Org_AdZero+App.ddd)
- && (ll_ad[1] > App.ADTrack.LeftLow_Org_AdZero+App.ddd)
- && (rl_ad[1] > App.ADTrack.RightLow_Org_AdZero+App.ddd)
- && (ll_ad[2] > App.ADTrack.LeftLow_Org_AdZero+App.ddd)
- && (rl_ad[2] > App.ADTrack.RightLow_Org_AdZero+App.ddd))
- || ((lu_ad[0] > App.ADTrack.LeftUp_Org_AdZero+App.ddd)//判断中间操作
- && (ru_ad[0] > App.ADTrack.RightUp_Org_AdZero+App.ddd)
- && (lu_ad[1] > App.ADTrack.LeftUp_Org_AdZero+App.ddd)
- && (ru_ad[1] > App.ADTrack.RightUp_Org_AdZero+App.ddd)
- && (lu_ad[2] > App.ADTrack.LeftUp_Org_AdZero+App.ddd)
- && (ru_ad[2] > App.ADTrack.RightUp_Org_AdZero+App.ddd)
- && (ll_ad[0] < App.ADTrack.LeftLow_Org_AdZero-App.ddd)//判断中间操作
- && (rl_ad[0] < App.ADTrack.RightLow_Org_AdZero-App.ddd)
- && (ll_ad[1] < App.ADTrack.LeftLow_Org_AdZero-App.ddd)
- && (rl_ad[1] < App.ADTrack.RightLow_Org_AdZero-App.ddd)
- && (ll_ad[2] < App.ADTrack.LeftLow_Org_AdZero-App.ddd)
- && (rl_ad[2] < App.ADTrack.RightLow_Org_AdZero-App.ddd))
+ if(((lu_ad[0] < App.ADTrack.LeftUp_Org_AdZero-CENTRE_VPT)//判断中间操作
+ && (ru_ad[0] < App.ADTrack.RightUp_Org_AdZero-CENTRE_VPT)
+ && (lu_ad[1] < App.ADTrack.LeftUp_Org_AdZero-CENTRE_VPT)
+ && (ru_ad[1] < App.ADTrack.RightUp_Org_AdZero-CENTRE_VPT)
+ && (lu_ad[2] < App.ADTrack.LeftUp_Org_AdZero-CENTRE_VPT)
+ && (ru_ad[2] < App.ADTrack.RightUp_Org_AdZero-CENTRE_VPT)
+ && (ll_ad[0] > App.ADTrack.LeftLow_Org_AdZero+CENTRE_VPT)//判断中间操作
+ && (rl_ad[0] > App.ADTrack.RightLow_Org_AdZero+CENTRE_VPT)
+ && (ll_ad[1] > App.ADTrack.LeftLow_Org_AdZero+CENTRE_VPT)
+ && (rl_ad[1] > App.ADTrack.RightLow_Org_AdZero+CENTRE_VPT)
+ && (ll_ad[2] > App.ADTrack.LeftLow_Org_AdZero+CENTRE_VPT)
+ && (rl_ad[2] > App.ADTrack.RightLow_Org_AdZero+CENTRE_VPT))
+ || ((lu_ad[0] > App.ADTrack.LeftUp_Org_AdZero+CENTRE_VPT)//判断中间操作
+ && (ru_ad[0] > App.ADTrack.RightUp_Org_AdZero+CENTRE_VPT)
+ && (lu_ad[1] > App.ADTrack.LeftUp_Org_AdZero+CENTRE_VPT)
+ && (ru_ad[1] > App.ADTrack.RightUp_Org_AdZero+CENTRE_VPT)
+ && (lu_ad[2] > App.ADTrack.LeftUp_Org_AdZero+CENTRE_VPT)
+ && (ru_ad[2] > App.ADTrack.RightUp_Org_AdZero+CENTRE_VPT)
+ && (ll_ad[0] < App.ADTrack.LeftLow_Org_AdZero-CENTRE_VPT)//判断中间操作
+ && (rl_ad[0] < App.ADTrack.RightLow_Org_AdZero-CENTRE_VPT)
+ && (ll_ad[1] < App.ADTrack.LeftLow_Org_AdZero-CENTRE_VPT)
+ && (rl_ad[1] < App.ADTrack.RightLow_Org_AdZero-CENTRE_VPT)
+ && (ll_ad[2] < App.ADTrack.LeftLow_Org_AdZero-CENTRE_VPT)
+ && (rl_ad[2] < App.ADTrack.RightLow_Org_AdZero-CENTRE_VPT))
)
{
App.CentreRunFalg = true;
App.CentCollDelay1mSCnt = CENT_TIME_MS;
- if(abs(Oll_diff1) + 100 > abs(Orl_diff1)
- && abs(Oll_diff2) + 100 > abs(Orl_diff2)
- && abs(Oll_diff3) + 100 > abs(Orl_diff3)
- && abs(Olu_diff1) + 100 > abs(Oru_diff1)
- && abs(Olu_diff2) + 100 > abs(Oru_diff2)
- && abs(Olu_diff3) + 100 > abs(Oru_diff3)
- )//判断偏左还是偏右
+ if(LeftDiff > RightDiff)//判断偏左
{
App.LeftRunFalg = true;
if(((Olu_diff1+Oru_diff1) > (App.ADTrack.Stop_VPT))//判断上拉
@@ -342,18 +329,7 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
&& ((Oll_diff3+Orl_diff3) < -(App.ADTrack.Stop_VPT))
)
{
- if((App.RightUpCS1237_SlopeArray[0] <= -PRESS_VPT) //判断是否不是正面压
- && (App.RightUpCS1237_SlopeArray[1] <= -PRESS_VPT)
- && (App.RightUpCS1237_SlopeArray[2] <= -PRESS_VPT)
- && (App.RightLowCS1237_SlopeArray[0] >= PRESS_VPT)
- && (App.RightLowCS1237_SlopeArray[1] >= PRESS_VPT)
- && (App.RightLowCS1237_SlopeArray[2] >= PRESS_VPT)
- && (App.LeftUpCS1237_SlopeArray[0] <= -PRESS_VPT) //判断是否不是正面压
- && (App.LeftUpCS1237_SlopeArray[1] <= -PRESS_VPT)
- && (App.LeftUpCS1237_SlopeArray[2] <= -PRESS_VPT)
- && (App.LeftLowCS1237_SlopeArray[0] >= PRESS_VPT)
- && (App.LeftLowCS1237_SlopeArray[1] >= PRESS_VPT)
- && (App.LeftLowCS1237_SlopeArray[2] >= PRESS_VPT))
+// if(App.CaliZeroFlag == true)//判断是否校零
{
if(App.MotorPara.Current_height < 1195)
{
@@ -375,18 +351,7 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
&& ((Oll_diff3+Orl_diff3) > (App.ADTrack.Stop_VPT))
)
{
- if((App.RightUpCS1237_SlopeArray[0] >= PRESS_VPT) //判断是否不是正面压
- && (App.RightUpCS1237_SlopeArray[1] >= PRESS_VPT)
- && (App.RightUpCS1237_SlopeArray[2] >= PRESS_VPT)
- && (App.RightLowCS1237_SlopeArray[0] <= -PRESS_VPT)
- && (App.RightLowCS1237_SlopeArray[1] <= -PRESS_VPT)
- && (App.RightLowCS1237_SlopeArray[2] <= -PRESS_VPT)
- && (App.LeftUpCS1237_SlopeArray[0] >= PRESS_VPT) //判断是否不是正面压
- && (App.LeftUpCS1237_SlopeArray[1] >= PRESS_VPT)
- && (App.LeftUpCS1237_SlopeArray[2] >= PRESS_VPT)
- && (App.LeftLowCS1237_SlopeArray[0] <= -PRESS_VPT)
- && (App.LeftLowCS1237_SlopeArray[1] <= -PRESS_VPT)
- && (App.LeftLowCS1237_SlopeArray[2] <= -PRESS_VPT))
+// if(App.CaliZeroFlag == true)//判断是否校零
{
if(App.MotorPara.Current_height > 725)
{
@@ -401,12 +366,7 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
}
}
}
- else if(abs(Oll_diff1) + 100 < abs(Orl_diff1)//判断偏左
- && abs(Oll_diff2) < abs(Orl_diff2) + 100
- && abs(Oll_diff3) < abs(Orl_diff3) + 100
- && abs(Olu_diff1) < abs(Oru_diff1) + 100
- && abs(Olu_diff2) < abs(Oru_diff2) + 100
- && abs(Olu_diff3) < abs(Oru_diff3) + 100)
+ else if(RightDiff > LeftDiff)//判断偏右
{
App.RightRunFalg = true;
if(((Olu_diff1+Oru_diff1) > (App.ADTrack.Stop_VPT))//判断上拉
@@ -417,18 +377,7 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
&& ((Oll_diff3+Orl_diff3) < -(App.ADTrack.Stop_VPT))
)
{
- if((App.RightUpCS1237_SlopeArray[0] <= -PRESS_VPT) //判断是否不是正面压
- && (App.RightUpCS1237_SlopeArray[1] <= -PRESS_VPT)
- && (App.RightUpCS1237_SlopeArray[2] <= -PRESS_VPT)
- && (App.RightLowCS1237_SlopeArray[0] >= PRESS_VPT)
- && (App.RightLowCS1237_SlopeArray[1] >= PRESS_VPT)
- && (App.RightLowCS1237_SlopeArray[2] >= PRESS_VPT)
- && (App.LeftUpCS1237_SlopeArray[0] <= -PRESS_VPT) //判断是否不是正面压
- && (App.LeftUpCS1237_SlopeArray[1] <= -PRESS_VPT)
- && (App.LeftUpCS1237_SlopeArray[2] <= -PRESS_VPT)
- && (App.LeftLowCS1237_SlopeArray[0] >= PRESS_VPT)
- && (App.LeftLowCS1237_SlopeArray[1] >= PRESS_VPT)
- && (App.LeftLowCS1237_SlopeArray[2] >= PRESS_VPT))
+// if(App.CaliZeroFlag == true)//判断是否校零
{
if(App.MotorPara.Current_height < 1195)
{
@@ -450,18 +399,7 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
&& ((Oll_diff3+Orl_diff3) > (App.ADTrack.Stop_VPT))
)
{
- if((App.RightUpCS1237_SlopeArray[0] >= PRESS_VPT) //判断是否不是正面压
- && (App.RightUpCS1237_SlopeArray[1] >= PRESS_VPT)
- && (App.RightUpCS1237_SlopeArray[2] >= PRESS_VPT)
- && (App.RightLowCS1237_SlopeArray[0] <= -PRESS_VPT)
- && (App.RightLowCS1237_SlopeArray[1] <= -PRESS_VPT)
- && (App.RightLowCS1237_SlopeArray[2] <= -PRESS_VPT)
- && (App.LeftUpCS1237_SlopeArray[0] >= PRESS_VPT) //判断是否不是正面压
- && (App.LeftUpCS1237_SlopeArray[1] >= PRESS_VPT)
- && (App.LeftUpCS1237_SlopeArray[2] >= PRESS_VPT)
- && (App.LeftLowCS1237_SlopeArray[0] <= -PRESS_VPT)
- && (App.LeftLowCS1237_SlopeArray[1] <= -PRESS_VPT)
- && (App.LeftLowCS1237_SlopeArray[2] <= -PRESS_VPT))
+// if(App.CaliZeroFlag == true)//判断是否校零
{
if(App.MotorPara.Current_height > 725)
{
@@ -492,36 +430,18 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
&& (App.LeftUpCS1237_SlopeArray[2] <= -PRESS_VPT)
&& (App.LeftLowCS1237_SlopeArray[0] >= PRESS_VPT)
&& (App.LeftLowCS1237_SlopeArray[1] >= PRESS_VPT)
- && (App.LeftLowCS1237_SlopeArray[2] >= PRESS_VPT)
- && (App.RightUpCS1237_SlopeArray[0] >= PRESS_VPT) //判断是否不是正面压
- && (App.RightUpCS1237_SlopeArray[1] >= PRESS_VPT)
- && (App.RightUpCS1237_SlopeArray[2] >= PRESS_VPT)
- && (App.RightLowCS1237_SlopeArray[0] <= -PRESS_VPT)
- && (App.RightLowCS1237_SlopeArray[1] <= -PRESS_VPT)
- && (App.RightLowCS1237_SlopeArray[2] <= -PRESS_VPT))
- || ((App.LeftUpCS1237_SlopeArray[0] <= -PRESS_VPT) //判断是否不是正面压
- && (App.LeftUpCS1237_SlopeArray[1] <= -PRESS_VPT)
- && (App.LeftUpCS1237_SlopeArray[2] <= -PRESS_VPT)
- && (App.LeftLowCS1237_SlopeArray[0] >= PRESS_VPT)
- && (App.LeftLowCS1237_SlopeArray[1] >= PRESS_VPT)
- && (App.LeftLowCS1237_SlopeArray[2] >= PRESS_VPT)
- && (App.RightUpCS1237_SlopeArray[0] <= -PRESS_VPT) //判断是否不是正面压
- && (App.RightUpCS1237_SlopeArray[1] <= -PRESS_VPT)
- && (App.RightUpCS1237_SlopeArray[2] <= -PRESS_VPT)
- && (App.RightLowCS1237_SlopeArray[0] <= -PRESS_VPT)
- && (App.RightLowCS1237_SlopeArray[1] <= -PRESS_VPT)
- && (App.RightLowCS1237_SlopeArray[2] <= -PRESS_VPT))
+ && (App.LeftLowCS1237_SlopeArray[2] >= PRESS_VPT))
)
{
// if(App.CaliZeroFlag == true)//判断是否校零
{
-// if((abs(Olu_diff1) > abs(Oru_diff1) * SHIELD_VPT)//判断是否不是侧面推拉
-// && (abs(Olu_diff2) > abs(Oru_diff2) * SHIELD_VPT)
-// && (abs(Olu_diff3) > abs(Oru_diff3) * SHIELD_VPT)
-// && (abs(Oll_diff1) > abs(Orl_diff1) * SHIELD_VPT)
-// && (abs(Oll_diff3) > abs(Orl_diff2) * SHIELD_VPT)
-// && (abs(Oll_diff3) > abs(Orl_diff3) * SHIELD_VPT)
-// )
+ if((abs(Olu_diff1) > abs(Oru_diff1) * SHIELD_VPT)//判断是否不是侧面推拉
+ && (abs(Olu_diff2) > abs(Oru_diff2) * SHIELD_VPT)
+ && (abs(Olu_diff3) > abs(Oru_diff3) * SHIELD_VPT)
+ && (abs(Oll_diff1) > abs(Orl_diff1) * SHIELD_VPT)
+ && (abs(Oll_diff3) > abs(Orl_diff2) * SHIELD_VPT)
+ && (abs(Oll_diff3) > abs(Orl_diff3) * SHIELD_VPT)
+ )
{
if(App.MotorPara.Current_height < 1195)
{
@@ -550,36 +470,18 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
&& (App.LeftUpCS1237_SlopeArray[2] >= PRESS_VPT)
&& (App.LeftLowCS1237_SlopeArray[0] <= -PRESS_VPT)
&& (App.LeftLowCS1237_SlopeArray[1] <= -PRESS_VPT)
- && (App.LeftLowCS1237_SlopeArray[2] <= -PRESS_VPT)
- && (App.RightUpCS1237_SlopeArray[0] <= -PRESS_VPT) //判断是否不是正面压
- && (App.RightUpCS1237_SlopeArray[1] <= -PRESS_VPT)
- && (App.RightUpCS1237_SlopeArray[2] <= -PRESS_VPT)
- && (App.RightLowCS1237_SlopeArray[0] >= PRESS_VPT)
- && (App.RightLowCS1237_SlopeArray[1] >= PRESS_VPT)
- && (App.RightLowCS1237_SlopeArray[2] >= PRESS_VPT))
- || ((App.LeftUpCS1237_SlopeArray[0] >= PRESS_VPT) //判断是否不是正面压
- && (App.LeftUpCS1237_SlopeArray[1] >= PRESS_VPT)
- && (App.LeftUpCS1237_SlopeArray[2] >= PRESS_VPT)
- && (App.LeftLowCS1237_SlopeArray[0] <= -PRESS_VPT)
- && (App.LeftLowCS1237_SlopeArray[1] <= -PRESS_VPT)
- && (App.LeftLowCS1237_SlopeArray[2] <= -PRESS_VPT)
- && (App.RightUpCS1237_SlopeArray[0] >= PRESS_VPT) //判断是否不是正面压
- && (App.RightUpCS1237_SlopeArray[1] >= PRESS_VPT)
- && (App.RightUpCS1237_SlopeArray[2] >= PRESS_VPT)
- && (App.RightLowCS1237_SlopeArray[0] >= PRESS_VPT)
- && (App.RightLowCS1237_SlopeArray[1] >= PRESS_VPT)
- && (App.RightLowCS1237_SlopeArray[2] >= PRESS_VPT))
+ && (App.LeftLowCS1237_SlopeArray[2] <= -PRESS_VPT))
)
{
// if(App.CaliZeroFlag == true)//判断是否校零
{
-// if((abs(Olu_diff1) > abs(Oru_diff1) * SHIELD_VPT)//判断是否不是侧面推拉
-// && (abs(Olu_diff2) > abs(Oru_diff2) * SHIELD_VPT)
-// && (abs(Olu_diff3) > abs(Oru_diff3) * SHIELD_VPT)
-// && (abs(Oll_diff1) > abs(Orl_diff1) * SHIELD_VPT)
-// && (abs(Oll_diff3) > abs(Orl_diff2) * SHIELD_VPT)
-// && (abs(Oll_diff3) > abs(Orl_diff3) * SHIELD_VPT)
-// )
+ if((abs(Olu_diff1) > abs(Oru_diff1) * SHIELD_VPT)//判断是否不是侧面推拉
+ && (abs(Olu_diff2) > abs(Oru_diff2) * SHIELD_VPT)
+ && (abs(Olu_diff3) > abs(Oru_diff3) * SHIELD_VPT)
+ && (abs(Oll_diff1) > abs(Orl_diff1) * SHIELD_VPT)
+ && (abs(Oll_diff3) > abs(Orl_diff2) * SHIELD_VPT)
+ && (abs(Oll_diff3) > abs(Orl_diff3) * SHIELD_VPT)
+ )
{
if(App.MotorPara.Current_height > 725)
{
@@ -611,36 +513,18 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
&& (App.RightUpCS1237_SlopeArray[2] <= -PRESS_VPT)
&& (App.RightLowCS1237_SlopeArray[0] >= PRESS_VPT)
&& (App.RightLowCS1237_SlopeArray[1] >= PRESS_VPT)
- && (App.RightLowCS1237_SlopeArray[2] >= PRESS_VPT)
- && (App.LeftUpCS1237_SlopeArray[0] >= PRESS_VPT) //判断是否不是正面压
- && (App.LeftUpCS1237_SlopeArray[1] >= PRESS_VPT)
- && (App.LeftUpCS1237_SlopeArray[2] >= PRESS_VPT)
- && (App.LeftLowCS1237_SlopeArray[0] <= -PRESS_VPT)
- && (App.LeftLowCS1237_SlopeArray[1] <= -PRESS_VPT)
- && (App.LeftLowCS1237_SlopeArray[2] <= -PRESS_VPT))
- || ((App.RightUpCS1237_SlopeArray[0] <= -PRESS_VPT) //判断是否不是正面压
- && (App.RightUpCS1237_SlopeArray[1] <= -PRESS_VPT)
- && (App.RightUpCS1237_SlopeArray[2] <= -PRESS_VPT)
- && (App.RightLowCS1237_SlopeArray[0] >= PRESS_VPT)
- && (App.RightLowCS1237_SlopeArray[1] >= PRESS_VPT)
- && (App.RightLowCS1237_SlopeArray[2] >= PRESS_VPT)
- && (App.LeftUpCS1237_SlopeArray[0] >= PRESS_VPT) //判断是否不是正面压
- && (App.LeftUpCS1237_SlopeArray[1] >= PRESS_VPT)
- && (App.LeftUpCS1237_SlopeArray[2] >= PRESS_VPT)
- && (App.LeftLowCS1237_SlopeArray[0] >= PRESS_VPT)
- && (App.LeftLowCS1237_SlopeArray[1] >= PRESS_VPT)
- && (App.LeftLowCS1237_SlopeArray[2] >= PRESS_VPT))
+ && (App.RightLowCS1237_SlopeArray[2] >= PRESS_VPT))
)
{
// if(App.CaliZeroFlag == true)//判断是否校零
{
-// if((abs(Oru_diff1) > abs(Olu_diff1) * SHIELD_VPT)//判断是否不是侧面推拉
-// && (abs(Oru_diff2) > abs(Olu_diff2) * SHIELD_VPT)
-// && (abs(Oru_diff3) > abs(Olu_diff3) * SHIELD_VPT)
-// && (abs(Orl_diff1) > abs(Oll_diff1) * SHIELD_VPT)
-// && (abs(Orl_diff3) > abs(Oll_diff2) * SHIELD_VPT)
-// && (abs(Orl_diff3) > abs(Oll_diff3) * SHIELD_VPT)
-// )
+ if((abs(Oru_diff1) > abs(Olu_diff1) * SHIELD_VPT)//判断是否不是侧面推拉
+ && (abs(Oru_diff2) > abs(Olu_diff2) * SHIELD_VPT)
+ && (abs(Oru_diff3) > abs(Olu_diff3) * SHIELD_VPT)
+ && (abs(Orl_diff1) > abs(Oll_diff1) * SHIELD_VPT)
+ && (abs(Orl_diff3) > abs(Oll_diff2) * SHIELD_VPT)
+ && (abs(Orl_diff3) > abs(Oll_diff3) * SHIELD_VPT)
+ )
{
if(App.MotorPara.Current_height < 1195)
{
@@ -668,36 +552,18 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
&& (App.RightUpCS1237_SlopeArray[2] >= PRESS_VPT)
&& (App.RightLowCS1237_SlopeArray[0] <= -PRESS_VPT)
&& (App.RightLowCS1237_SlopeArray[1] <= -PRESS_VPT)
- && (App.RightLowCS1237_SlopeArray[2] <= -PRESS_VPT)
- && (App.LeftUpCS1237_SlopeArray[0] <= -PRESS_VPT) //判断是否不是正面压
- && (App.LeftUpCS1237_SlopeArray[1] <= -PRESS_VPT)
- && (App.LeftUpCS1237_SlopeArray[2] <= -PRESS_VPT)
- && (App.LeftLowCS1237_SlopeArray[0] >= PRESS_VPT)
- && (App.LeftLowCS1237_SlopeArray[1] >= PRESS_VPT)
- && (App.LeftLowCS1237_SlopeArray[2] >= PRESS_VPT))
- || ((App.RightUpCS1237_SlopeArray[0] >= PRESS_VPT) //判断是否不是正面压
- && (App.RightUpCS1237_SlopeArray[1] >= PRESS_VPT)
- && (App.RightUpCS1237_SlopeArray[2] >= PRESS_VPT)
- && (App.RightLowCS1237_SlopeArray[0] <= -PRESS_VPT)
- && (App.RightLowCS1237_SlopeArray[1] <= -PRESS_VPT)
- && (App.RightLowCS1237_SlopeArray[2] <= -PRESS_VPT)
- && (App.LeftUpCS1237_SlopeArray[0] <= -PRESS_VPT) //判断是否不是正面压
- && (App.LeftUpCS1237_SlopeArray[1] <= -PRESS_VPT)
- && (App.LeftUpCS1237_SlopeArray[2] <= -PRESS_VPT)
- && (App.LeftLowCS1237_SlopeArray[0] <= -PRESS_VPT)
- && (App.LeftLowCS1237_SlopeArray[1] <= -PRESS_VPT)
- && (App.LeftLowCS1237_SlopeArray[2] <= -PRESS_VPT))
+ && (App.RightLowCS1237_SlopeArray[2] <= -PRESS_VPT))
)
{
// if(App.CaliZeroFlag == true)//判断是否校零
{
-// if((abs(Oru_diff1) > abs(Olu_diff1) * SHIELD_VPT)//判断是否不是侧面推拉
-// && (abs(Oru_diff2) > abs(Olu_diff2) * SHIELD_VPT)
-// && (abs(Oru_diff3) > abs(Olu_diff3) * SHIELD_VPT)
-// && (abs(Orl_diff1) > abs(Oll_diff1) * SHIELD_VPT)
-// && (abs(Orl_diff3) > abs(Oll_diff2) * SHIELD_VPT)
-// && (abs(Orl_diff3) > abs(Oll_diff3) * SHIELD_VPT)
-// )
+ if((abs(Oru_diff1) > abs(Olu_diff1) * SHIELD_VPT)//判断是否不是侧面推拉
+ && (abs(Oru_diff2) > abs(Olu_diff2) * SHIELD_VPT)
+ && (abs(Oru_diff3) > abs(Olu_diff3) * SHIELD_VPT)
+ && (abs(Orl_diff1) > abs(Oll_diff1) * SHIELD_VPT)
+ && (abs(Orl_diff3) > abs(Oll_diff2) * SHIELD_VPT)
+ && (abs(Orl_diff3) > abs(Oll_diff3) * SHIELD_VPT)
+ )
{
if(App.MotorPara.Current_height > 725)
{
@@ -983,7 +849,7 @@ static void AppInit(void)
BDC_STOP();
LED_RED_OFF();
LED_GREEN_ON();
- App.Status = APP_STATUS_MOTOR_INIT;
+ App.Status = APP_STATUS_START_BEEP;
App.MotorPara.InitialFlag = false;
App.RStatus = READ_STATUS_START;
GradeControl(App.Para.Layout.ControlLevel);//等级控制
@@ -1103,25 +969,31 @@ static void AppLoopHandler(void)
App.Status = APP_STATUS_IDLE;
break;}
- case APP_STATUS_MOTOR_INIT:{
- Beeper_Start(200,200,2);
+ case APP_STATUS_START_BEEP:{
LED_RED_ON();
LED_GREEN_OFF();
- BDC_UP();
- Ddl_Delay1ms(1000);
- BDC_DOWN();
- App.DownFlag = true;
- App.StopFlag = false;
- App.Status = APP_STATUS_WAIT_MOTOR_INIT;
- App.TD1mSDelayCnt = TRAVEL_TIME_MS;
+ Beeper_Start(200,200,2);
+ App.TD1mSDelayCnt = 1000;
+ App.Status = APP_STATUS_MOTOR_INIT;
+ break;}
+
+ case APP_STATUS_MOTOR_INIT:{
+ if(App.TD1mSDelayCnt <= 0)
+ {
+ BDC_UP();
+ Ddl_Delay1ms(1000);
+ BDC_DOWN();
+ App.DownFlag = true;
+ App.StopFlag = false;
+ App.Status = APP_STATUS_WAIT_MOTOR_INIT;
+ App.TD1mSDelayCnt = TRAVEL_TIME_MS;
+ }
break;}
case APP_STATUS_WAIT_MOTOR_INIT:{
if(App.TD1mSDelayCnt <= 0)
{
BDC_STOP();
- LED_RED_OFF();
- LED_GREEN_ON();
App.StopFlag = true;
App.DownFlag = false;
App.UpFlag = false;
@@ -1130,13 +1002,11 @@ static void AppLoopHandler(void)
if(App.MotorPara.Current_height <= 722 && App.MotorPara.Current_height >= 720)
{
BDC_STOP();
- LED_RED_OFF();
- LED_GREEN_ON();
App.StopFlag = true;
App.DownFlag = false;
App.UpFlag = false;
App.MotorPara.CaliFlag = false;
- App.TD1mSDelayCnt = 1000;
+ App.TD1mSDelayCnt = 1500;
App.Status = APP_STATUS_ZERO_MARKING;
}
break;}
@@ -1153,7 +1023,6 @@ static void AppLoopHandler(void)
App.ADTrack.LeftLow_Org_AdZero,
App.ADTrack.RightUp_Org_AdZero,
App.ADTrack.RightLow_Org_AdZero);
-
App.Status = APP_STATUS_WAIT_MOTOR_CALI_UP;
App.MotorPara.InitialFlag = true;
App.MotorPara.CaliNum = 0;
@@ -1161,8 +1030,6 @@ static void AppLoopHandler(void)
App.StopFlag = false;
App.UpFlag = true;
BDC_UP();
- LED_RED_ON();
- LED_GREEN_OFF();
App.CailUp1mSCnt = 0;
App.MotorPara.LoopOne = false;
}
@@ -1176,7 +1043,7 @@ static void AppLoopHandler(void)
App.StopFlag = true;
App.DownFlag = false;
App.UpFlag = false;
- Ddl_Delay1ms(1000);
+ Ddl_Delay1ms(1500);
App.DownFlag = true;
App.StopFlag = false;
App.Status = APP_STATUS_WAIT_MOTOR_CALI_DOWN;
@@ -1185,8 +1052,6 @@ static void AppLoopHandler(void)
else if(App.MotorPara.CaliNum >= 480 && App.MotorPara.LoopOne == true)
{
BDC_STOP();
- LED_RED_OFF();
- LED_GREEN_ON();
App.StopFlag = true;
App.DownFlag = false;
App.UpFlag = false;
@@ -1215,7 +1080,7 @@ static void AppLoopHandler(void)
App.DownFlag = false;
App.UpFlag = false;
App.MotorPara.LoopOne = true;
- Ddl_Delay1ms(1000);
+ Ddl_Delay1ms(1500);
App.UpFlag = true;
App.StopFlag = false;
App.Status = APP_STATUS_WAIT_MOTOR_CALI_UP;
@@ -1225,8 +1090,6 @@ static void AppLoopHandler(void)
else if(App.MotorPara.CaliNum >= 480 && App.MotorPara.LoopOne == true)
{
BDC_STOP();
- LED_RED_OFF();
- LED_GREEN_ON();
App.StopFlag = true;
App.DownFlag = false;
App.UpFlag = false;
@@ -1250,7 +1113,6 @@ static void AppLoopHandler(void)
case APP_STATUS_WAIT_STEADY:{
if(App.TD1mSDelayCnt <= 0)
{
- Beeper_Start(300,0,1);
App.SideFlag = false;
App.CaliZeroFlag = false;
App.UpFlag = false;
@@ -1258,10 +1120,17 @@ static void AppLoopHandler(void)
App.EmeFlag = false;
App.StopFlag = true;
App.WaitFlag = true;
- App.Status = APP_STATUS_HEIGHT_CONTROL;
+ App.Status = APP_STATUS_END_BEEP;
}
break;}
+ case APP_STATUS_END_BEEP:{
+ Beeper_Start(300,0,1);
+ LED_RED_OFF();
+ LED_GREEN_ON();
+ App.Status = APP_STATUS_HEIGHT_CONTROL;
+ break;}
+
case APP_STATUS_HEIGHT_CONTROL:{
if(App.MotorPara.Current_height <= 725
&& App.MotorPara.RestFlag == false
@@ -1332,11 +1201,6 @@ int main(void)
BSP_Init();
AppInit();
- App.aaa = CENTRE_FRONT_CNT;
- App.bbb = CENTRE_FRONT_SUM;
- App.ccc = CENTRE_FRONT_VPT;
- App.ddd = CENTRE_VPT;
-
while(1) {
#if(USE_WDT == 1)
FeedDogHandler();