双柱双电机S型传感器独立分支初始版本

This commit is contained in:
2025-09-30 15:25:12 +08:00
parent 105824c0c3
commit a923808ede
7 changed files with 62 additions and 33 deletions
+6 -1
View File
@@ -101,7 +101,9 @@
<sRunDeb>0</sRunDeb> <sRunDeb>0</sRunDeb>
<sLrtime>0</sLrtime> <sLrtime>0</sLrtime>
<bEvRecOn>1</bEvRecOn> <bEvRecOn>1</bEvRecOn>
<nTsel>2</nTsel> <bSchkAxf>0</bSchkAxf>
<bTchkAxf>0</bTchkAxf>
<nTsel>12</nTsel>
<sDll></sDll> <sDll></sDll>
<sDllPa></sDllPa> <sDllPa></sDllPa>
<sDlgDll></sDlgDll> <sDlgDll></sDlgDll>
@@ -316,6 +318,7 @@
<pMultCmdsp></pMultCmdsp> <pMultCmdsp></pMultCmdsp>
<DebugDescription> <DebugDescription>
<Enable>1</Enable> <Enable>1</Enable>
<EnableFlashSeq>0</EnableFlashSeq>
<EnableLog>0</EnableLog> <EnableLog>0</EnableLog>
<Protocol>2</Protocol> <Protocol>2</Protocol>
<DbgClock>5000000</DbgClock> <DbgClock>5000000</DbgClock>
@@ -403,6 +406,8 @@
<sRunDeb>0</sRunDeb> <sRunDeb>0</sRunDeb>
<sLrtime>0</sLrtime> <sLrtime>0</sLrtime>
<bEvRecOn>1</bEvRecOn> <bEvRecOn>1</bEvRecOn>
<bSchkAxf>0</bSchkAxf>
<bTchkAxf>0</bTchkAxf>
<nTsel>-1</nTsel> <nTsel>-1</nTsel>
<sDll></sDll> <sDll></sDll>
<sDllPa></sDllPa> <sDllPa></sDllPa>
+12 -4
View File
@@ -10,8 +10,8 @@
<TargetName>Debug</TargetName> <TargetName>Debug</TargetName>
<ToolsetNumber>0x4</ToolsetNumber> <ToolsetNumber>0x4</ToolsetNumber>
<ToolsetName>ARM-ADS</ToolsetName> <ToolsetName>ARM-ADS</ToolsetName>
<pArmCC>5060528::V5.06 update 5 (build 528)::ARMCC</pArmCC> <pArmCC>5060960::V5.06 update 7 (build 960)::ARMCC</pArmCC>
<pCCUsed>5060528::V5.06 update 5 (build 528)::ARMCC</pCCUsed> <pCCUsed>5060960::V5.06 update 7 (build 960)::ARMCC</pCCUsed>
<uAC6>0</uAC6> <uAC6>0</uAC6>
<TargetOption> <TargetOption>
<TargetCommonOption> <TargetCommonOption>
@@ -185,6 +185,9 @@
<hadXRAM>0</hadXRAM> <hadXRAM>0</hadXRAM>
<uocXRam>0</uocXRam> <uocXRam>0</uocXRam>
<RvdsVP>2</RvdsVP> <RvdsVP>2</RvdsVP>
<RvdsMve>0</RvdsMve>
<RvdsCdeCp>0</RvdsCdeCp>
<nBranchProt>0</nBranchProt>
<hadIRAM2>1</hadIRAM2> <hadIRAM2>1</hadIRAM2>
<hadIROM2>1</hadIROM2> <hadIROM2>1</hadIROM2>
<StupSel>8</StupSel> <StupSel>8</StupSel>
@@ -325,6 +328,7 @@
<uThumb>0</uThumb> <uThumb>0</uThumb>
<uSurpInc>0</uSurpInc> <uSurpInc>0</uSurpInc>
<uC99>1</uC99> <uC99>1</uC99>
<uGnu>0</uGnu>
<useXO>0</useXO> <useXO>0</useXO>
<v6Lang>3</v6Lang> <v6Lang>3</v6Lang>
<v6LangP>3</v6LangP> <v6LangP>3</v6LangP>
@@ -350,7 +354,7 @@
<NoWarn>0</NoWarn> <NoWarn>0</NoWarn>
<uSurpInc>0</uSurpInc> <uSurpInc>0</uSurpInc>
<useXO>0</useXO> <useXO>0</useXO>
<uClangAs>0</uClangAs> <ClangAsOpt>4</ClangAsOpt>
<VariousControls> <VariousControls>
<MiscControls></MiscControls> <MiscControls></MiscControls>
<Define></Define> <Define></Define>
@@ -859,6 +863,9 @@
<hadXRAM>0</hadXRAM> <hadXRAM>0</hadXRAM>
<uocXRam>0</uocXRam> <uocXRam>0</uocXRam>
<RvdsVP>1</RvdsVP> <RvdsVP>1</RvdsVP>
<RvdsMve>0</RvdsMve>
<RvdsCdeCp>0</RvdsCdeCp>
<nBranchProt>0</nBranchProt>
<hadIRAM2>1</hadIRAM2> <hadIRAM2>1</hadIRAM2>
<hadIROM2>1</hadIROM2> <hadIROM2>1</hadIROM2>
<StupSel>8</StupSel> <StupSel>8</StupSel>
@@ -999,6 +1006,7 @@
<uThumb>0</uThumb> <uThumb>0</uThumb>
<uSurpInc>0</uSurpInc> <uSurpInc>0</uSurpInc>
<uC99>1</uC99> <uC99>1</uC99>
<uGnu>0</uGnu>
<useXO>0</useXO> <useXO>0</useXO>
<v6Lang>0</v6Lang> <v6Lang>0</v6Lang>
<v6LangP>0</v6LangP> <v6LangP>0</v6LangP>
@@ -1024,7 +1032,7 @@
<NoWarn>0</NoWarn> <NoWarn>0</NoWarn>
<uSurpInc>0</uSurpInc> <uSurpInc>0</uSurpInc>
<useXO>0</useXO> <useXO>0</useXO>
<uClangAs>0</uClangAs> <ClangAsOpt>4</ClangAsOpt>
<VariousControls> <VariousControls>
<MiscControls></MiscControls> <MiscControls></MiscControls>
<Define></Define> <Define></Define>
@@ -1,6 +1,6 @@
/* /*
* Auto generated Run-Time-Environment Component Configuration File * Auto generated Run-Time-Environment Configuration File
* *** Do not modify ! *** * *** Do not modify ! ***
* *
* Project: 'HC32F460' * Project: 'HC32F460'
@@ -17,4 +17,5 @@
#define CMSIS_device_header "HC32F460JETA.h" #define CMSIS_device_header "HC32F460JETA.h"
#endif /* RTE_COMPONENTS_H */ #endif /* RTE_COMPONENTS_H */
+12
View File
@@ -167,6 +167,18 @@
#define CLR_RIGHTLOW_CS1237_SCLK() PORT_ResetBits(RIGHTLOW_CS1237_SCLK_PORTx, RIGHTLOW_CS1237_SCLK_PINx)//拉低 #define CLR_RIGHTLOW_CS1237_SCLK() PORT_ResetBits(RIGHTLOW_CS1237_SCLK_PORTx, RIGHTLOW_CS1237_SCLK_PINx)//拉低
#endif #endif
//< BIT0
#define TWIN_BIT0_PORTx (PortB)
#define TWIN_BIT0_PINx (Pin12)
#define SET_TWIN_BIT0() PORT_SetBits(TWIN_BIT0_PORTx, TWIN_BIT0_PINx)//拉高
#define CLR_TWIN_BIT0() PORT_ResetBits(TWIN_BIT0_PORTx, TWIN_BIT0_PINx)//拉低
//< BIT1
#define TWIN_BIT1_PORTx (PortB)
#define TWIN_BIT1_PINx (Pin13)
#define SET_TWIN_BIT1() PORT_SetBits(TWIN_BIT1_PORTx, TWIN_BIT1_PINx)//拉高
#define CLR_TWIN_BIT1() PORT_ResetBits(TWIN_BIT1_PORTx, TWIN_BIT1_PINx)//拉低
typedef struct { typedef struct {
uint32_t ControlLevel;//控制等级 uint32_t ControlLevel;//控制等级
uint32_t DBGWaveOut;//调试波形输出 uint32_t DBGWaveOut;//调试波形输出
+3 -3
View File
@@ -13,9 +13,9 @@
#define STOP_TIME_MS 500 #define STOP_TIME_MS 500
#define RUN_TIME_MS 0 #define RUN_TIME_MS 0
#define BDC_STOP() Motor_Control(MOTOR_CMD_STOP) #define BDC_STOP() (SET_TWIN_BIT0(),SET_TWIN_BIT1())
#define BDC_UP() Motor_Control(MOTOR_CMD_FORWARD) #define BDC_UP() (CLR_TWIN_BIT0(),SET_TWIN_BIT1())
#define BDC_DOWN() Motor_Control(MOTOR_CMD_REVERSE) #define BDC_DOWN() (SET_TWIN_BIT0(),CLR_TWIN_BIT1())
/*控制等级*/ /*控制等级*/
typedef enum { typedef enum {
+3
View File
@@ -445,6 +445,9 @@ static void GPIO_Config(void)
PORT_Init(RIGHTUP_CS1237_SCLK_PORTx, RIGHTUP_CS1237_SCLK_PINx, &stcPortInit); PORT_Init(RIGHTUP_CS1237_SCLK_PORTx, RIGHTUP_CS1237_SCLK_PINx, &stcPortInit);
PORT_Init(RIGHTLOW_CS1237_SCLK_PORTx, RIGHTLOW_CS1237_SCLK_PINx, &stcPortInit); PORT_Init(RIGHTLOW_CS1237_SCLK_PORTx, RIGHTLOW_CS1237_SCLK_PINx, &stcPortInit);
stcPortInit.enPullUp = Enable;//上拉
PORT_Init(TWIN_BIT0_PORTx, TWIN_BIT0_PINx, &stcPortInit);
PORT_Init(TWIN_BIT1_PORTx, TWIN_BIT1_PINx, &stcPortInit);
} }
/*********************************左上传感器 /*********************************左上传感器
******************************************************************************* *******************************************************************************
+24 -24
View File
@@ -410,36 +410,36 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
if (lu_K.peaks_positive if (lu_K.peaks_positive
&& lu_K.valleys_negative && lu_K.valleys_negative
&& lu_diff[0] < App.ADTrack.Slope_VPT / 2 && App.LeftUpCS1237_SlopeArray[0] < App.ADTrack.Slope_VPT / 2
&& lu_diff[0] > -App.ADTrack.Slope_VPT / 2 && App.LeftUpCS1237_SlopeArray[0] > -App.ADTrack.Slope_VPT / 2
&& lu_diff[1] < App.ADTrack.Slope_VPT / 2 && App.LeftUpCS1237_SlopeArray[1] < App.ADTrack.Slope_VPT / 2
&& lu_diff[1] > -App.ADTrack.Slope_VPT / 2 && App.LeftUpCS1237_SlopeArray[1] > -App.ADTrack.Slope_VPT / 2
&& lu_diff[2] < App.ADTrack.Slope_VPT / 2 && App.LeftUpCS1237_SlopeArray[2] < App.ADTrack.Slope_VPT / 2
&& lu_diff[2] > -App.ADTrack.Slope_VPT / 2 && App.LeftUpCS1237_SlopeArray[2] > -App.ADTrack.Slope_VPT / 2
&& ll_K.peaks_positive && ll_K.peaks_positive
&& ll_K.valleys_negative && ll_K.valleys_negative
&& ll_diff[0] < App.ADTrack.Slope_VPT / 2 && App.LeftLowCS1237_SlopeArray[0] < App.ADTrack.Slope_VPT / 2
&& ll_diff[0] > -App.ADTrack.Slope_VPT / 2 && App.LeftLowCS1237_SlopeArray[0] > -App.ADTrack.Slope_VPT / 2
&& ll_diff[1] < App.ADTrack.Slope_VPT / 2 && App.LeftLowCS1237_SlopeArray[1] < App.ADTrack.Slope_VPT / 2
&& ll_diff[1] > -App.ADTrack.Slope_VPT / 2 && App.LeftLowCS1237_SlopeArray[1] > -App.ADTrack.Slope_VPT / 2
&& ll_diff[2] < App.ADTrack.Slope_VPT / 2 && App.LeftLowCS1237_SlopeArray[2] < App.ADTrack.Slope_VPT / 2
&& ll_diff[2] > -App.ADTrack.Slope_VPT / 2 && App.LeftLowCS1237_SlopeArray[2] > -App.ADTrack.Slope_VPT / 2
&& ru_K.peaks_positive && ru_K.peaks_positive
&& ru_K.valleys_negative && ru_K.valleys_negative
&& ru_diff[0] < App.ADTrack.Slope_VPT / 2 && App.RightUpCS1237_SlopeArray[0] < App.ADTrack.Slope_VPT / 2
&& ru_diff[0] > -App.ADTrack.Slope_VPT / 2 && App.RightUpCS1237_SlopeArray[0] > -App.ADTrack.Slope_VPT / 2
&& ru_diff[1] < App.ADTrack.Slope_VPT / 2 && App.RightUpCS1237_SlopeArray[1] < App.ADTrack.Slope_VPT / 2
&& ru_diff[1] > -App.ADTrack.Slope_VPT / 2 && App.RightUpCS1237_SlopeArray[1] > -App.ADTrack.Slope_VPT / 2
&& ru_diff[2] < App.ADTrack.Slope_VPT / 2 && App.RightUpCS1237_SlopeArray[2] < App.ADTrack.Slope_VPT / 2
&& ru_diff[2] > -App.ADTrack.Slope_VPT / 2 && App.RightUpCS1237_SlopeArray[2] > -App.ADTrack.Slope_VPT / 2
&& rl_K.peaks_positive && rl_K.peaks_positive
&& rl_K.valleys_negative && rl_K.valleys_negative
&& rl_diff[0] < App.ADTrack.Slope_VPT / 2 && App.RightLowCS1237_SlopeArray[0] < App.ADTrack.Slope_VPT / 2
&& rl_diff[0] > -App.ADTrack.Slope_VPT / 2 && App.RightLowCS1237_SlopeArray[0] > -App.ADTrack.Slope_VPT / 2
&& rl_diff[1] < App.ADTrack.Slope_VPT / 2 && App.RightLowCS1237_SlopeArray[1] < App.ADTrack.Slope_VPT / 2
&& rl_diff[1] > -App.ADTrack.Slope_VPT / 2 && App.RightLowCS1237_SlopeArray[1] > -App.ADTrack.Slope_VPT / 2
&& rl_diff[2] < App.ADTrack.Slope_VPT / 2 && App.RightLowCS1237_SlopeArray[2] < App.ADTrack.Slope_VPT / 2
&& rl_diff[2] > -App.ADTrack.Slope_VPT / 2) && App.RightLowCS1237_SlopeArray[2] > -App.ADTrack.Slope_VPT / 2)
{ {
if(App.StopFlag == true && App.StopCollDelay1mSCnt <= 0){ if(App.StopFlag == true && App.StopCollDelay1mSCnt <= 0){
App.ADTrack.LeftUp_Org_AdZero = lu_ad[0]; App.ADTrack.LeftUp_Org_AdZero = lu_ad[0];