修改为250K-操控端

This commit is contained in:
2025-10-21 21:17:49 +08:00
parent 2153bfcd1b
commit 0bac0a1b23
5 changed files with 269 additions and 247 deletions

76
User.c
View File

@@ -17,9 +17,6 @@ bit FlgOneTime = 0;
ubyte uart2RxFlag = 0;
uword RgCanPerid = 50;
ubyte can_error_cnt = 0;
ubyte can_error_flg = 0;
//PWM 20181227
ubyte PwmH[16] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
//-----------------------------------------------------------------------
@@ -261,7 +258,7 @@ void sbusCanDecode(void)
SBUS2CANdecodeTemp = (float)(sbus_data.channels[0]);
SBUS2CANdecodeTemp = (DF_ZeroValue - SBUS2CANdecodeTemp)*23;//<2F><>Ҫ<EFBFBD>һ<E4BBBB>·<EFBFBD><C2B7>ţ<EFBFBD><C5A3><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DF_Curvature = (int16_t)SBUS2CANdecodeTemp;//<2F><><EFBFBD><EFBFBD>
if( (DF_Curvature > (-50)) && (DF_Curvature < 50) ) //<2F><><EFBFBD>ӻ<EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if( (DF_Curvature > (-200)) && (DF_Curvature < 200) ) //<2F><><EFBFBD>ӻ<EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
DF_Curvature = 0;
}
@@ -276,17 +273,17 @@ void sbusCanDecode(void)
}
//<2F><><EFBFBD><EFBFBD>
SBUS2CANdecodeTemp = (float)(sbus_data.channels[7]);
SBUS2CANdecodeTemp = (float)(sbus_data.channels[11]);
SBUS2CANdecodeTemp = (DF_ZeroValue - SBUS2CANdecodeTemp);//<2F><>Ҫ<EFBFBD>һ<E4BBBB>·<EFBFBD><C2B7>ţ<EFBFBD><C5A3><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DF_Reserve = (int16_t)SBUS2CANdecodeTemp;//ת<><D7AA>
if( (DF_Reserve > (-50)) && (DF_Reserve < 50) ) //<2F><><EFBFBD>ӻ<EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
DF_Reserve = 0;
}
//SwA
if(sbus_data.channels[1] >= 1700)//<2F><><EFBFBD><EFBFBD>
if(sbus_data.channels[12] >= 1700)//<2F><><EFBFBD><EFBFBD>
{
DF_SwA = 1;
}
@@ -296,11 +293,11 @@ void sbusCanDecode(void)
}
//SwB
if(sbus_data.channels[6] >= 1700)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if(sbus_data.channels[4] >= 1700)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
DF_SwB = 2;
}
else if(sbus_data.channels[6] <= 250)//<2F>ڶ<EFBFBD><DAB6><EFBFBD>
else if(sbus_data.channels[4] <= 500)//<2F>ڶ<EFBFBD><DAB6><EFBFBD>
{
DF_SwB = 0;
}
@@ -310,11 +307,11 @@ void sbusCanDecode(void)
}
//SwC
if(sbus_data.channels[4] >= 1700)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if(sbus_data.channels[7] >= 1700)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
DF_SwC = 2;
}
else if(sbus_data.channels[4] <= 250)//<2F>ڶ<EFBFBD><DAB6><EFBFBD>
else if(sbus_data.channels[7] <= 500)//<2F>ڶ<EFBFBD><DAB6><EFBFBD>
{
DF_SwC = 0;
}
@@ -324,7 +321,7 @@ void sbusCanDecode(void)
}
//SwD
if(sbus_data.channels[5] >= 1700)//<2F><><EFBFBD><EFBFBD>
if(sbus_data.channels[13] >= 1700)//<2F><><EFBFBD><EFBFBD>
{
DF_SwD = 1;
}
@@ -347,13 +344,41 @@ void sbusCanDecode(void)
SBUS2CANdecodeTemp = (float)(sbus_data.channels[3]);
UnRemoteControlOutput_2.bit_data.curvature = (int16_t)SBUS2CANdecodeTemp;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
UnRemoteControlOutput_2.bit_data.switch_a = P1_2;//
UnRemoteControlOutput_2.bit_data.switch_d = P1_3;//
}
UnRemoteControlOutput_2.bit_data.reserve1 = (uint16_t)(sbus_data.channels[10]);
//SwB
if(sbus_data.channels[5] >= 1700)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
UnRemoteControlOutput_2.bit_data.switch_b = 2;
}
else if(sbus_data.channels[5] <= 500)//<2F>ڶ<EFBFBD><DAB6><EFBFBD>
{
UnRemoteControlOutput_2.bit_data.switch_b = 0;
}
else//<2F><>һ<EFBFBD><D2BB>
{
UnRemoteControlOutput_2.bit_data.switch_b = 1;
}
//SwC
if(sbus_data.channels[6] >= 1700)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
UnRemoteControlOutput_2.bit_data.switch_c = 2;
}
else if(sbus_data.channels[6] <= 500)//<2F>ڶ<EFBFBD><DAB6><EFBFBD>
{
UnRemoteControlOutput_2.bit_data.switch_c = 0;
}
else//<2F><>һ<EFBFBD><D2BB>
{
UnRemoteControlOutput_2.bit_data.switch_c = 1;
}
}
}
//CAN<41><4E><EFBFBD>ͽ<EFBFBD><CDBD><EFBFBD>
void CanRXTX(void)
@@ -478,18 +503,11 @@ void CanRXTX(void)
}
CanTransmit(DF_SwTx,(ubyte *)&UnRemoteControlOutput_1.arr[0]);
CanTransmit(DF_SwTx1,(ubyte *)&UnRemoteControlOutput_2.arr[0]);
CanTransmit(DF_SwTx1,(ubyte *)&UnRemoteControlOutput_2.arr[0]);
}
if( (0x40 == can_error_cnt) || (0x80 == can_error_cnt) )//20250625<32>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߴ<EFBFBD><DFB4><EFBFBD>
{
can_error_flg = can_error_cnt;
CAN_vInit();
can_error_cnt = 0;
}
}