From ce198ed4588ea293b1ab67c677e4e9048db49b00 Mon Sep 17 00:00:00 2001 From: YuanHongbin <975559679@qq.com> Date: Tue, 16 Sep 2025 12:08:36 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=A8=E5=8A=9F=E8=83=BD=E5=AE=8C=E6=88=90?= =?UTF-8?q?=E7=89=88=E6=9C=ACV1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Project/HC32F460/MDK/HC32F460.uvoptx | 162 +++++++++++++++--- Project/HC32F460/MDK/HC32F460.uvprojx | 27 +-- .../HC32F460/MDK/RTE/_Debug/RTE_Components.h | 3 +- .../source/Module/dc_motor/dc_motor.c | 2 +- .../source/Module/dc_motor/dc_motor.h | 6 +- Project/HC32F460/source/User/Inc/main.h | 2 +- Project/HC32F460/source/User/Src/main.c | 82 ++++----- 7 files changed, 187 insertions(+), 97 deletions(-) diff --git a/Project/HC32F460/MDK/HC32F460.uvoptx b/Project/HC32F460/MDK/HC32F460.uvoptx index b524d80..74babe2 100644 --- a/Project/HC32F460/MDK/HC32F460.uvoptx +++ b/Project/HC32F460/MDK/HC32F460.uvoptx @@ -101,9 +101,7 @@ 0 0 1 - 0 - 0 - 4 + 2 @@ -114,7 +112,7 @@ - Segger\JL2CM3.dll + BIN\CMSIS_AGDI.dll @@ -130,7 +128,7 @@ 0 CMSIS_AGDI - UL2CM3(-S0 -C0 -P0 ) -FN2 -FC1000 -FD1FFF8000 -FF0HC32F460_512K -FF1HC32F460_otp -FL080000 -FL13FC -FS00 -FS13000C00 -FP0($$Device:HC32F460JETA$FlashARM\HC32F460_512K.FLM) -FP1($$Device:HC32F460JETA$FlashARM\HC32F460_otp.FLM) + -X"Any" -UAny -O206 -S9 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -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 @@ -150,25 +148,73 @@ 0 DLGUARM - –? + 0 0 - 57 + 235 1 -
30944
+
24890
0 0 0 0 0 1 - ..\source\Module\dc_motor\dc_motor.c + ..\source\User\Src\main.c - \\BombSensor\../source/Module/dc_motor/dc_motor.c\57 + \\BombSensor\../source/User/Src/main.c\235 +
+ + 1 + 0 + 211 + 1 +
24642
+ 0 + 0 + 0 + 0 + 0 + 1 + ..\source\User\Src\main.c + + \\BombSensor\../source/User/Src/main.c\211 +
+ + 2 + 0 + 185 + 1 +
24380
+ 0 + 0 + 0 + 0 + 0 + 1 + ..\source\User\Src\main.c + + \\BombSensor\../source/User/Src/main.c\185 +
+ + 3 + 0 + 163 + 1 +
24122
+ 0 + 0 + 0 + 0 + 0 + 1 + ..\source\User\Src\main.c + + \\BombSensor\../source/User/Src/main.c\163
@@ -210,57 +256,57 @@ 7 1 - App.ADTrack.LeftUp_Org_AdZero,0x0A + LeftSlopeSum,0x0A 8 1 - App.ADTrack.LeftLow_Org_AdZero,0x0A + RightSlopeSum,0x0A 9 1 - App.ADTrack.RightUp_Org_AdZero,0x0A + LeftDiffSum,0x0A 10 1 - App.ADTrack.RightLow_Org_AdZero,0x0A + RightDiffSum,0x0A 11 1 - LeftSlopeSum,0x0A + KeyASta 12 1 - RightSlopeSum,0x0A + KeyBSta 13 1 - LeftDiffSum,0x0A + DcMotorDispEn 14 1 - RightDiffSum,0x0A + Olu_diff1,0x0A 15 1 - KeyASta + Oll_diff1,0x0A 16 1 - KeyBSta + Oru_diff1,0x0A 17 1 - DcMotorDispEn + Orl_diff1,0x0A @@ -307,7 +353,6 @@ 1 - 0 0 2 5000000 @@ -395,8 +440,6 @@ 0 0 1 - 0 - 0 -1 @@ -410,7 +453,72 @@ - + + + 0 + 0 + 163 + 1 +
0
+ 0 + 0 + 0 + 0 + 0 + 0 + ..\source\User\Src\main.c + + +
+ + 1 + 0 + 185 + 1 +
0
+ 0 + 0 + 0 + 0 + 0 + 0 + ..\source\User\Src\main.c + + +
+ + 2 + 0 + 211 + 1 +
0
+ 0 + 0 + 0 + 0 + 0 + 0 + ..\source\User\Src\main.c + + +
+ + 3 + 0 + 235 + 1 +
0
+ 0 + 0 + 0 + 0 + 0 + 0 + ..\source\User\Src\main.c + + +
+
0 @@ -1058,7 +1166,7 @@ 3 49 1 - 1 + 0 0 0 ..\source\User\Src\Debug.c @@ -1134,7 +1242,7 @@ 5 54 1 - 0 + 1 0 0 ..\source\Module\dc_motor\dc_motor.c diff --git a/Project/HC32F460/MDK/HC32F460.uvprojx b/Project/HC32F460/MDK/HC32F460.uvprojx index 71ebd23..47814fb 100644 --- a/Project/HC32F460/MDK/HC32F460.uvprojx +++ b/Project/HC32F460/MDK/HC32F460.uvprojx @@ -10,7 +10,7 @@ Debug 0x4 ARM-ADS - 5060750::V5.06 update 6 (build 750)::.\ARMCC + 5060528::V5.06 update 5 (build 528)::ARMCC 0 @@ -184,8 +184,6 @@ 0 0 2 - 0 - 0 1 1 8 @@ -326,7 +324,6 @@ 0 0 1 - 0 0 3 3 @@ -352,7 +349,7 @@ 0 0 0 - 4 + 0 @@ -861,8 +858,6 @@ 0 0 1 - 0 - 0 1 1 8 @@ -1003,7 +998,6 @@ 0 0 1 - 0 0 0 0 @@ -1029,7 +1023,7 @@ 0 0 0 - 4 + 0 @@ -1376,19 +1370,4 @@ - - - - <Project Info> - - - - - - 0 - 1 - - - - diff --git a/Project/HC32F460/MDK/RTE/_Debug/RTE_Components.h b/Project/HC32F460/MDK/RTE/_Debug/RTE_Components.h index 74af911..d0352e7 100644 --- a/Project/HC32F460/MDK/RTE/_Debug/RTE_Components.h +++ b/Project/HC32F460/MDK/RTE/_Debug/RTE_Components.h @@ -1,6 +1,6 @@ /* - * Auto generated Run-Time-Environment Configuration File + * Auto generated Run-Time-Environment Component Configuration File * *** Do not modify ! *** * * Project: 'HC32F460' @@ -17,5 +17,4 @@ #define CMSIS_device_header "HC32F460JETA.h" - #endif /* RTE_COMPONENTS_H */ diff --git a/Project/HC32F460/source/Module/dc_motor/dc_motor.c b/Project/HC32F460/source/Module/dc_motor/dc_motor.c index 442cf72..cd67c6a 100644 --- a/Project/HC32F460/source/Module/dc_motor/dc_motor.c +++ b/Project/HC32F460/source/Module/dc_motor/dc_motor.c @@ -34,7 +34,7 @@ void DCMOTORDBGOnOff(uint8_t OnOff) /* Timer4 CNT */ #define TIMER4_UNIT (M4_TMR41) -#define TIMER4_CNT_CYCLE_VAL (10000u) /* Timer4 counter cycle value */ +#define TIMER4_CNT_CYCLE_VAL (500u) /* Timer4 counter cycle value */ /* Timer4 OCO */ #define TIMER4_OCO_HIGH_CH (Timer4OcoOuh) /* only Timer4OcoOuh Timer4OcoOvh Timer4OcoOwh */ diff --git a/Project/HC32F460/source/Module/dc_motor/dc_motor.h b/Project/HC32F460/source/Module/dc_motor/dc_motor.h index 9543ddb..6db259e 100644 --- a/Project/HC32F460/source/Module/dc_motor/dc_motor.h +++ b/Project/HC32F460/source/Module/dc_motor/dc_motor.h @@ -11,9 +11,9 @@ #define TIMER TIMER4 // µç»ú¿ØÖƲÎÊý #define PWM_PERIOD TIM_PERIOD // PWMÖÜÆÚÖµ (ARR) -#define MAX_SPEED 9900 // ×î´óËÙ¶È(PWMÕ¼¿Õ±È) -#define ACCEL_STEP 100 // ¼ÓËÙ²½½øÖµ -#define DECEL_STEP 100 // ¼õËÙ²½½øÖµ +#define MAX_SPEED 480 // ×î´óËÙ¶È(PWMÕ¼¿Õ±È) +#define ACCEL_STEP 10 // ¼ÓËÙ²½½øÖµ +#define DECEL_STEP 10 // ¼õËÙ²½½øÖµ #define ACCEL_INTERVAL 2 // ¼Ó¼õËÙ¼ä¸ô(ms) diff --git a/Project/HC32F460/source/User/Inc/main.h b/Project/HC32F460/source/User/Inc/main.h index e1e4bc3..700c12b 100644 --- a/Project/HC32F460/source/User/Inc/main.h +++ b/Project/HC32F460/source/User/Inc/main.h @@ -12,7 +12,7 @@ #define SLOPE_CNT 40 #define STOP_TIME_MS 500 -#define RUN_TIME_MS 500 +#define RUN_TIME_MS 0 #define BDC_STOP() Motor_Control(MOTOR_CMD_STOP) #define BDC_UP() Motor_Control(MOTOR_CMD_FORWARD) diff --git a/Project/HC32F460/source/User/Src/main.c b/Project/HC32F460/source/User/Src/main.c index f4f2696..349f4bc 100644 --- a/Project/HC32F460/source/User/Src/main.c +++ b/Project/HC32F460/source/User/Src/main.c @@ -140,15 +140,6 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_ App.RightRunFalg = false; if(LeftSlopeSum > RightSlopeSum && LeftDiffSum > RightDiffSum) { - uint32_t UpSlopeSum = abs(App.LeftUpCS1237_SlopeArray[0]) + abs(App.RightUpCS1237_SlopeArray[0]); - uint32_t LowSlopeSum = abs(App.LeftLowCS1237_SlopeArray[0]) + abs(App.RightUpCS1237_SlopeArray[0]); - uint32_t UpDiffSum = abs(lu_diff[0]) + abs(ru_diff[0]); - uint32_t LowDiffSum = abs(ll_diff[0]) + abs(rl_diff[0]); - -// if(UpSlopeSum > LowSlopeSum && UpDiffSum > LowDiffSum) -// { -// -// } App.LeftRunFalg = true; if(((App.LeftUpCS1237_SlopeArray[0] <= -App.ADTrack.Slope_VPT) && (App.LeftUpCS1237_SlopeArray[1] <= -App.ADTrack.Slope_VPT) @@ -161,14 +152,17 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_ && (Olu_diff3 >= App.ADTrack.LeftUpVPT) && (Oll_diff1 <= -App.ADTrack.LeftLowVPT) && (Oll_diff2 <= -App.ADTrack.LeftLowVPT) - && (Oll_diff3 <= -App.ADTrack.LeftLowVPT)) - ) + && (Oll_diff3 <= -App.ADTrack.LeftLowVPT))) { - BDC_UP(); - App.UpFlag = true; - App.StopFlag = false; - App.DownFlag = false; - App.RunCollDelay1mSCnt = RUN_TIME_MS; + if((abs(Olu_diff1) > abs(Orl_diff1) + 10000) + && (abs(Oll_diff1) > abs(Oru_diff1) + 10000)) + { + BDC_UP(); + App.UpFlag = true; + App.StopFlag = false; + App.DownFlag = false; + App.RunCollDelay1mSCnt = RUN_TIME_MS; + } } else if(((App.LeftUpCS1237_SlopeArray[0] >= App.ADTrack.Slope_VPT) && (App.LeftUpCS1237_SlopeArray[1] >= App.ADTrack.Slope_VPT) @@ -181,14 +175,17 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_ && (Olu_diff1 <= -App.ADTrack.LeftUpVPT) && (Oll_diff1 >= App.ADTrack.LeftLowVPT) && (Oll_diff1 >= App.ADTrack.LeftLowVPT) - && (Oll_diff1 >= App.ADTrack.LeftLowVPT)) - ) + && (Oll_diff1 >= App.ADTrack.LeftLowVPT))) { - BDC_DOWN(); - App.DownFlag = true; - App.StopFlag = false; - App.UpFlag = false; - App.RunCollDelay1mSCnt = RUN_TIME_MS; + if((abs(Oll_diff1) > abs(Oru_diff1) + 10000) + && (abs(Olu_diff1) > abs(Orl_diff1) + 10000)) + { + BDC_DOWN(); + App.DownFlag = true; + App.StopFlag = false; + App.UpFlag = false; + App.RunCollDelay1mSCnt = RUN_TIME_MS; + } } } else if(LeftSlopeSum < RightSlopeSum && LeftDiffSum < RightDiffSum) @@ -205,14 +202,17 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_ && (Oru_diff3 >= App.ADTrack.RightUpVPT) && (Orl_diff1 <= -App.ADTrack.RightLowVPT) && (Orl_diff2 <= -App.ADTrack.RightLowVPT) - && (Orl_diff3 <= -App.ADTrack.RightLowVPT)) - ) + && (Orl_diff3 <= -App.ADTrack.RightLowVPT))) { - BDC_UP(); - App.UpFlag = true; - App.StopFlag = false; - App.DownFlag = false; - App.RunCollDelay1mSCnt = RUN_TIME_MS; + if((abs(Orl_diff1) > abs(Olu_diff1) + 10000) + && (abs(Oru_diff1) > abs(Oll_diff1) + 10000)) + { + BDC_UP(); + App.UpFlag = true; + App.StopFlag = false; + App.DownFlag = false; + App.RunCollDelay1mSCnt = RUN_TIME_MS; + } } else if(((App.RightUpCS1237_SlopeArray[0] >= App.ADTrack.Slope_VPT) && (App.RightUpCS1237_SlopeArray[1] >= App.ADTrack.Slope_VPT) @@ -228,11 +228,15 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_ && (Orl_diff3 >= App.ADTrack.RightLowVPT)) ) { - BDC_DOWN(); - App.DownFlag = true; - App.StopFlag = false; - App.UpFlag = false; - App.RunCollDelay1mSCnt = RUN_TIME_MS; + if((abs(Oru_diff1) > abs(Oll_diff1) + 10000) + && (abs(Orl_diff1) > abs(Olu_diff1) + 10000)) + { + BDC_DOWN(); + App.DownFlag = true; + App.StopFlag = false; + App.UpFlag = false; + App.RunCollDelay1mSCnt = RUN_TIME_MS; + } } } } @@ -543,10 +547,10 @@ static void AppLoopHandler(void) App.EvenRunning = false; App.ADTrack.Slope_VPT = 2000; - App.ADTrack.LeftUpVPT = 10000; - App.ADTrack.LeftLowVPT = 10000; - App.ADTrack.RightUpVPT = 10000; - App.ADTrack.RightLowVPT = 10000; + App.ADTrack.LeftUpVPT = 40000; + App.ADTrack.LeftLowVPT = 40000; + App.ADTrack.RightUpVPT = 40000; + App.ADTrack.RightLowVPT = 40000; App.ADTrack.LeftUp_Org_AdZero = App.LeftUpCS1237_TrendArray[0]; App.ADTrack.LeftLow_Org_AdZero = App.LeftLowCS1237_TrendArray[0];