From 2cb9446870e14064174a228b81be97f4214fb682 Mon Sep 17 00:00:00 2001 From: "DESKTOP-KQHDCM4\\97555" <975559679@qq.com> Date: Sat, 25 Oct 2025 18:01:23 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=87=E4=BB=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Project/HC32F460/MDK/HC32F460.uvoptx | 4 +- Project/HC32F460/source/User/Inc/main.h | 2 +- Project/HC32F460/source/User/Src/main.c | 50 ++++++++++++++----------- 3 files changed, 32 insertions(+), 24 deletions(-) diff --git a/Project/HC32F460/MDK/HC32F460.uvoptx b/Project/HC32F460/MDK/HC32F460.uvoptx index 4212ed3..fc47953 100644 --- a/Project/HC32F460/MDK/HC32F460.uvoptx +++ b/Project/HC32F460/MDK/HC32F460.uvoptx @@ -140,7 +140,7 @@ 0 CMSIS_AGDI - -X"Any" -UAny -O206 -S0 -C0 -P00000000 -N00("") -D00(00000000) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD1FFF8000 -FC1000 -FN2 -FF0HC32F460_512K.FLM -FS00 -FL080000 -FP0($$Device:HC32F460JETA$FlashARM\HC32F460_512K.FLM) -FF1HC32F460_otp.FLM -FS13000C00 -FL13FC -FP1($$Device:HC32F460JETA$FlashARM\HC32F460_otp.FLM) + -X"Any" -UAny -O206 -S0 -C0 -P00000000 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD1FFF8000 -FC1000 -FN2 -FF0HC32F460_512K.FLM -FS00 -FL080000 -FP0($$Device:HC32F460JETA$FlashARM\HC32F460_512K.FLM) -FF1HC32F460_otp.FLM -FS13000C00 -FL13FC -FP1($$Device:HC32F460JETA$FlashARM\HC32F460_otp.FLM) 0 @@ -1079,7 +1079,7 @@ dc_motor - 0 + 1 0 0 0 diff --git a/Project/HC32F460/source/User/Inc/main.h b/Project/HC32F460/source/User/Inc/main.h index cb6d967..2782bae 100644 --- a/Project/HC32F460/source/User/Inc/main.h +++ b/Project/HC32F460/source/User/Inc/main.h @@ -17,7 +17,7 @@ #define STOP_TIME_MS 500 #define RUN_TIME_MS 0 -#define EME_START_MS 500 +#define EME_START_MS 3000 #define EME_STOP_MS 3000 #define TRAVEL_TIME_MS 30000 diff --git a/Project/HC32F460/source/User/Src/main.c b/Project/HC32F460/source/User/Src/main.c index 9d55dd2..a7b6021 100644 --- a/Project/HC32F460/source/User/Src/main.c +++ b/Project/HC32F460/source/User/Src/main.c @@ -250,7 +250,7 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_ App.LeftRunFalg = true; // if((App.LeftLowCS1237_SlopeArray[0] > App.ADTrack.Slope_VPT/3)) // { - if(Oll_diff1 < -App.ADTrack.LeftLowVPT/3) + if((Oll_diff1+Orl_diff1) < -App.ADTrack.LeftLowVPT/3) { BDC_UP(); App.UpFlag = true; @@ -258,12 +258,12 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_ App.DownFlag = false; App.EmeFlag = false; App.RunCollDelay1mSCnt = RUN_TIME_MS; - App.EmergencyDelay1mSCnt = EME_START_MS; + //App.EmergencyDelay1mSCnt = EME_START_MS; } // } // else if((App.LeftLowCS1237_SlopeArray[0] < -App.ADTrack.Slope_VPT/3)) // { - if(Oll_diff1 > App.ADTrack.LeftLowVPT/3) + if((Oll_diff1+Orl_diff1) > App.ADTrack.LeftLowVPT/3) { BDC_DOWN(); App.UpFlag = false; @@ -271,7 +271,7 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_ App.DownFlag = true; App.EmeFlag = false; App.RunCollDelay1mSCnt = RUN_TIME_MS; - App.EmergencyDelay1mSCnt = EME_START_MS; + //App.EmergencyDelay1mSCnt = EME_START_MS; } // } } @@ -280,7 +280,7 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_ App.RightRunFalg = true; if((App.RightLowCS1237_SlopeArray[0] > App.ADTrack.Slope_VPT/3)) { - if(Orl_diff1 < -App.ADTrack.RightLowVPT/3) + if((Oll_diff1+Orl_diff1) < -App.ADTrack.RightLowVPT/3) { BDC_UP(); App.UpFlag = true; @@ -288,12 +288,12 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_ App.DownFlag = false; App.EmeFlag = false; App.RunCollDelay1mSCnt = RUN_TIME_MS; - App.EmergencyDelay1mSCnt = EME_START_MS; + //App.EmergencyDelay1mSCnt = EME_START_MS; } } else if((App.RightLowCS1237_SlopeArray[0] < -App.ADTrack.Slope_VPT/3)) { - if(Orl_diff1 > App.ADTrack.RightLowVPT/3) + if((Oll_diff1+Orl_diff1) > App.ADTrack.RightLowVPT/3) { BDC_DOWN(); App.UpFlag = false; @@ -301,7 +301,7 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_ App.DownFlag = true; App.EmeFlag = false; App.RunCollDelay1mSCnt = RUN_TIME_MS; - App.EmergencyDelay1mSCnt = EME_START_MS; + //App.EmergencyDelay1mSCnt = EME_START_MS; } } } @@ -333,7 +333,7 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_ App.DownFlag = false; App.EmeFlag = false; App.RunCollDelay1mSCnt = RUN_TIME_MS; - App.EmergencyDelay1mSCnt = EME_START_MS; + //App.EmergencyDelay1mSCnt = EME_START_MS; } } else if(((App.LeftUpCS1237_SlopeArray[0] >= App.ADTrack.Slope_VPT) @@ -360,7 +360,7 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_ App.StopFlag = false; App.EmeFlag = false; App.RunCollDelay1mSCnt = RUN_TIME_MS; - App.EmergencyDelay1mSCnt = EME_START_MS; + //App.EmergencyDelay1mSCnt = EME_START_MS; } } } @@ -390,7 +390,7 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_ App.DownFlag = false; App.EmeFlag = false; App.RunCollDelay1mSCnt = RUN_TIME_MS; - App.EmergencyDelay1mSCnt = EME_START_MS; + //App.EmergencyDelay1mSCnt = EME_START_MS; } } else if(((App.RightUpCS1237_SlopeArray[0] >= App.ADTrack.Slope_VPT) @@ -417,7 +417,7 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_ App.UpFlag = false; App.EmeFlag = false; App.RunCollDelay1mSCnt = RUN_TIME_MS; - App.EmergencyDelay1mSCnt = EME_START_MS; + //App.EmergencyDelay1mSCnt = EME_START_MS; } } } @@ -427,7 +427,7 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_ if(App.LeftRunFalg == true) { if(((App.CentreRunFalg == false ) && (ll_slope > App.ADTrack.Slope_VPT)) - || ((App.CentreRunFalg == true ) && (App.LeftUpCS1237_SlopeArray[0] + App.RightUpCS1237_SlopeArray[0]) < -App.ADTrack.Slope_VPT)) + || ((App.CentreRunFalg == true ) && (App.LeftUpCS1237_SlopeArray[0] + App.RightUpCS1237_SlopeArray[0]) > App.ADTrack.Slope_VPT)) { BDC_STOP(); App.StopFlag = true; @@ -435,6 +435,7 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_ App.UpFlag = false; App.EmeFlag = false; App.StopCollDelay1mSCnt = STOP_TIME_MS; + App.EmergencyDelay1mSCnt = EME_START_MS; } else if(((App.CentreRunFalg == false ) && (Oll_diff1 < App.ADTrack.Stop_VPT)) || ((App.CentreRunFalg == true) && ((Oll_diff1 + Orl_diff1) < (App.ADTrack.Stop_VPT)))) @@ -445,6 +446,7 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_ App.UpFlag = false; App.EmeFlag = false; App.StopCollDelay1mSCnt = STOP_TIME_MS; + App.EmergencyDelay1mSCnt = EME_START_MS; } else if((LeftLowDiff + EME_STOP_VPT) < RightLowDiff && App.EmergencyDelay1mSCnt <= 0 && App.CentreRunFalg == false) { @@ -464,9 +466,10 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_ App.UpFlag = false; App.EmeFlag = false; App.StopCollDelay1mSCnt = STOP_TIME_MS; + App.EmergencyDelay1mSCnt = EME_START_MS; } else if(((App.CentreRunFalg == false ) && (Orl_diff1 < App.ADTrack.Stop_VPT)) - || ((App.CentreRunFalg == true) && ((Oll_diff1 + Orl_diff1) < (App.ADTrack.Stop_VPT)))) + || ((App.CentreRunFalg == true) && ((Oll_diff1 + Orl_diff1) < (-App.ADTrack.Stop_VPT)))) { BDC_STOP(); App.StopFlag = true; @@ -474,6 +477,7 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_ App.UpFlag = false; App.EmeFlag = false; App.StopCollDelay1mSCnt = STOP_TIME_MS; + App.EmergencyDelay1mSCnt = EME_START_MS; } else if(LeftLowDiff > (RightLowDiff + EME_STOP_VPT) && App.EmergencyDelay1mSCnt <= 0 && App.CentreRunFalg == false) { @@ -488,7 +492,7 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_ if(App.LeftRunFalg == true) { if(((App.CentreRunFalg == false ) && (ll_slope < -App.ADTrack.Slope_VPT)) - || ((App.CentreRunFalg == true ) && (App.LeftUpCS1237_SlopeArray[0] + App.RightUpCS1237_SlopeArray[0]) > App.ADTrack.Slope_VPT)) + || ((App.CentreRunFalg == true ) && (App.LeftUpCS1237_SlopeArray[0] + App.RightUpCS1237_SlopeArray[0]) > -App.ADTrack.Slope_VPT)) { BDC_STOP(); App.StopFlag = true; @@ -496,9 +500,10 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_ App.UpFlag = false; App.EmeFlag = false; App.StopCollDelay1mSCnt = STOP_TIME_MS; + App.EmergencyDelay1mSCnt = EME_START_MS; } else if(((App.CentreRunFalg == false ) && (Oll_diff1 > -App.ADTrack.Stop_VPT)) - || ((App.CentreRunFalg == true) && ((Oll_diff1 + Orl_diff1)> -(App.ADTrack.Stop_VPT)))) + || ((App.CentreRunFalg == true) && ((Oll_diff1 + Orl_diff1) > -(App.ADTrack.Stop_VPT)))) { BDC_STOP(); App.StopFlag = true; @@ -506,6 +511,7 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_ App.UpFlag = false; App.EmeFlag = false; App.StopCollDelay1mSCnt = STOP_TIME_MS; + App.EmergencyDelay1mSCnt = EME_START_MS; } else if((LeftLowDiff + EME_STOP_VPT) < RightLowDiff && App.EmergencyDelay1mSCnt <= 0 && App.CentreRunFalg == false) { @@ -525,6 +531,7 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_ App.UpFlag = false; App.EmeFlag = false; App.StopCollDelay1mSCnt = STOP_TIME_MS; + App.EmergencyDelay1mSCnt = EME_START_MS; } else if(((App.CentreRunFalg == false ) && (Orl_diff1 > -App.ADTrack.Stop_VPT)) || ((App.CentreRunFalg == true) && ((Oll_diff1 + Orl_diff1) > -(App.ADTrack.Stop_VPT)))) @@ -535,6 +542,7 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_ App.UpFlag = false; App.EmeFlag = false; App.StopCollDelay1mSCnt = STOP_TIME_MS; + App.EmergencyDelay1mSCnt = EME_START_MS; } else if(LeftLowDiff > (RightLowDiff + EME_STOP_VPT) && App.EmergencyDelay1mSCnt <= 0 && App.CentreRunFalg == false) { @@ -618,10 +626,10 @@ static void AppInit(void) RIGHTUP_CS1237_Init(); RIGHTLOW_CS1237_Init(); -// App.Status = APP_STATUS_WAIT; -// App.TD1mSDelayCnt = 1000; - App.Status = APP_STATUS_UP1; - App.TD1mSDelayCnt = TRAVEL_TIME_MS; + App.Status = APP_STATUS_WAIT; + App.TD1mSDelayCnt = 1000; +// App.Status = APP_STATUS_UP1; +// App.TD1mSDelayCnt = TRAVEL_TIME_MS; App.RStatus = READ_STATUS_START; GradeControl(App.Para.Layout.ControlLevel);//µÈ¼¶¿ØÖÆ @@ -882,7 +890,7 @@ int main(void) #endif ReadLoopHandler(); DcmotorLoopHandler(); - AdcLoopHander(); + AdcLoopHander(); AppLoopHandler(); } }