Engine idle, Generating 시퀀스 수정
This commit is contained in:
161
Comm.c
161
Comm.c
@@ -310,8 +310,8 @@ void CSendECanDataA(void)
|
||||
// ---------------------------------------------------------
|
||||
Uint32 ulTxMask = 0x0E3F8423UL;
|
||||
|
||||
ECanaRegs.CANTRS.all = ulTxMask;
|
||||
ECanaRegs.CANTA.all = ulTxMask;
|
||||
ECanaRegs.CANTRS.all = ulTxMask;
|
||||
}
|
||||
|
||||
static void CInitECanA(void)
|
||||
@@ -777,13 +777,17 @@ interrupt void CECanInterruptB(void)
|
||||
|
||||
void CSendECanDataB(void)
|
||||
{
|
||||
struct ECAN_REGS ECanShadow;
|
||||
static Uint16 uiTxDivid = 0U; // 분산 송신
|
||||
float32 fTemp = 0.0F;
|
||||
Uint16 uiTemp = 0U;
|
||||
|
||||
Uint16 EmergencySig = ((GeneralOperValue.uiEmergency > 0U) || (KeyOperValue.KeyList.Emergency > 0U)) ? 1U : 0U;
|
||||
|
||||
// ---------------------------------------------------------
|
||||
// 송신 메일박스 마스크 설정 및 전송 트리거
|
||||
// 10ms interval MBOX 마스크 (1, 2, 3)
|
||||
// ---------------------------------------------------------
|
||||
Uint32 ulTxMask = 0x000EUL;
|
||||
|
||||
// 10ms
|
||||
// [101h]
|
||||
// --- BYTE 0 ---
|
||||
@@ -797,14 +801,9 @@ void CSendECanDataB(void)
|
||||
uiTemp |= CPackBit((GPIO_FAIL_SAFE_READ() == false) ? 1U : 0U, 3U);
|
||||
Tx101.DcuState = uiTemp;
|
||||
|
||||
ECanbMboxes.MBOX1.MDL.byte.BYTE0 = Tx101.PlayState;
|
||||
ECanbMboxes.MBOX1.MDL.byte.BYTE1 = Tx101.DcuState;
|
||||
ECanbMboxes.MBOX1.MDL.byte.BYTE2 = 0x0U;
|
||||
ECanbMboxes.MBOX1.MDL.byte.BYTE3 = 0x0U;
|
||||
ECanbMboxes.MBOX1.MDH.byte.BYTE4 = 0x0U;
|
||||
ECanbMboxes.MBOX1.MDH.byte.BYTE5 = 0x0U;
|
||||
ECanbMboxes.MBOX1.MDH.byte.BYTE6 = 0x0U;
|
||||
ECanbMboxes.MBOX1.MDH.byte.BYTE7 = 0x0U;
|
||||
// BYTE 0(PlayState), BYTE 1(DcuState), BYTE 3(DCUversionMinor), BYTE 4~7(Reserved)
|
||||
ECanbMboxes.MBOX1.MDL.all = CPackMboxData(Tx101.PlayState, Tx101.DcuState, 0U, 0U);
|
||||
ECanbMboxes.MBOX1.MDH.all = CPackMboxData(0U, 0U, 0U, 0U);
|
||||
|
||||
// [102h]
|
||||
// --- BYTE 0 ---
|
||||
@@ -814,18 +813,12 @@ void CSendECanDataB(void)
|
||||
uiTemp |= CPackBit(EmergencySig, 5U);
|
||||
Tx102.GcuCommand = uiTemp;
|
||||
|
||||
ECanbMboxes.MBOX2.MDL.byte.BYTE0 = Tx102.GcuCommand;
|
||||
ECanbMboxes.MBOX2.MDL.byte.BYTE1 = 0x0U;
|
||||
ECanbMboxes.MBOX2.MDL.byte.BYTE2 = 0x0U;
|
||||
ECanbMboxes.MBOX2.MDL.byte.BYTE3 = 0x0U;
|
||||
ECanbMboxes.MBOX2.MDH.byte.BYTE4 = 0x0U;
|
||||
ECanbMboxes.MBOX2.MDH.byte.BYTE5 = 0x0U;
|
||||
ECanbMboxes.MBOX2.MDH.byte.BYTE6 = 0x0U;
|
||||
ECanbMboxes.MBOX2.MDH.byte.BYTE7 = 0x0U;
|
||||
// BYTE 0(PlayState), BYTE 1~7(Reserved)
|
||||
ECanbMboxes.MBOX2.MDL.all = CPackMboxData(Tx102.GcuCommand, 0U, 0U, 0U);
|
||||
ECanbMboxes.MBOX2.MDH.all = CPackMboxData(0U, 0U, 0U, 0U);
|
||||
|
||||
// [103h]
|
||||
// --- BYTE 0~7 ---
|
||||
uiTemp = 0U;
|
||||
Tx103.EngineStart = GeneralOperValue.EcuCommand.EngineStart;
|
||||
Tx103.EngineStop = GeneralOperValue.EcuCommand.EngineStop;
|
||||
Tx103.FaultReset = GeneralOperValue.uiAlarmReset;
|
||||
@@ -833,29 +826,8 @@ void CSendECanDataB(void)
|
||||
Tx103.ActiveOverride = KeyOperValue.KeyList.BattleMode;
|
||||
Tx103.EmergencyStop = EmergencySig;
|
||||
|
||||
ECanbMboxes.MBOX3.MDL.byte.BYTE0 = Tx103.EngineStart;
|
||||
ECanbMboxes.MBOX3.MDL.byte.BYTE1 = Tx103.EngineStop;
|
||||
ECanbMboxes.MBOX3.MDL.byte.BYTE2 = Tx103.FaultReset;
|
||||
ECanbMboxes.MBOX3.MDL.byte.BYTE3 = 0x0U;
|
||||
ECanbMboxes.MBOX3.MDH.byte.BYTE4 = ((Tx103.RpmSetpoint >> 0U) & 0xFFU);
|
||||
ECanbMboxes.MBOX3.MDH.byte.BYTE5 = ((Tx103.RpmSetpoint >> 8U) & 0xFFU);
|
||||
ECanbMboxes.MBOX3.MDH.byte.BYTE6 = Tx103.ActiveOverride;
|
||||
ECanbMboxes.MBOX3.MDH.byte.BYTE7 = Tx103.EmergencyStop;
|
||||
|
||||
ECanShadow.CANTRS.all = ECanbRegs.CANTRS.all;
|
||||
ECanShadow.CANTRS.bit.TRS1 = 1U; // 101h
|
||||
ECanShadow.CANTRS.bit.TRS2 = 1U; // 102h
|
||||
ECanShadow.CANTRS.bit.TRS3 = 1U; // 103h
|
||||
ECanbRegs.CANTRS.all = ECanShadow.CANTRS.all;
|
||||
|
||||
ECanShadow.CANTA.all = ECanbRegs.CANTA.all;
|
||||
ECanShadow.CANTA.bit.TA1 = 1U; // 101h
|
||||
ECanShadow.CANTA.bit.TA2 = 1U; // 102h
|
||||
ECanShadow.CANTA.bit.TA3 = 1U; // 103h
|
||||
ECanbRegs.CANTA.all = ECanShadow.CANTA.all;
|
||||
|
||||
ECanShadow.CANTRS.all = ECanbRegs.CANTRS.all;
|
||||
ECanShadow.CANTA.all = ECanbRegs.CANTA.all;
|
||||
ECanbMboxes.MBOX3.MDL.all = CPackMboxData(Tx103.EngineStart, Tx103.EngineStop, Tx103.FaultReset, 0U);
|
||||
ECanbMboxes.MBOX3.MDH.all = CPackMboxData(((Tx103.RpmSetpoint >> 0U) & 0xFFU), ((Tx103.RpmSetpoint >> 8U) & 0xFFU), Tx103.ActiveOverride, Tx103.EmergencyStop);
|
||||
|
||||
switch (uiTxDivid)
|
||||
{
|
||||
@@ -867,17 +839,10 @@ void CSendECanDataB(void)
|
||||
Tx100.VersionMinor = (Uint16)FIRMWARE_VERSION_MINOR;
|
||||
Tx100.VersionPatch = (Uint16)FIRMWARE_VERSION_PATCH;
|
||||
|
||||
ECanbMboxes.MBOX0.MDL.byte.BYTE0 = ((Tx100.Heartbit >> 0U) & 0xFFU);
|
||||
ECanbMboxes.MBOX0.MDL.byte.BYTE1 = ((Tx100.Heartbit >> 8U) & 0xFFU);
|
||||
ECanbMboxes.MBOX0.MDL.byte.BYTE2 = 0x0U;
|
||||
ECanbMboxes.MBOX0.MDL.byte.BYTE3 = 0x0U;
|
||||
ECanbMboxes.MBOX0.MDH.byte.BYTE4 = 0x0U;
|
||||
ECanbMboxes.MBOX0.MDH.byte.BYTE5 = Tx100.VersionMajor;
|
||||
ECanbMboxes.MBOX0.MDH.byte.BYTE6 = Tx100.VersionMinor;
|
||||
ECanbMboxes.MBOX0.MDH.byte.BYTE7 = Tx100.VersionPatch;
|
||||
ECanbMboxes.MBOX0.MDL.all = CPackMboxData(((Tx100.Heartbit >> 0U) & 0xFFU), ((Tx100.Heartbit >> 8U) & 0xFFU), 0U, 0U);
|
||||
ECanbMboxes.MBOX0.MDH.all = CPackMboxData(0U, Tx100.VersionMajor, Tx100.VersionMinor, Tx100.VersionPatch);
|
||||
|
||||
ECanShadow.CANTRS.bit.TRS0 = 1U;
|
||||
ECanShadow.CANTA.bit.TA0 = 1U;
|
||||
ulTxMask |= (1UL << 0U); // MBOX 0
|
||||
break;
|
||||
}
|
||||
case 1U:
|
||||
@@ -888,17 +853,10 @@ void CSendECanDataB(void)
|
||||
Tx110.DcuFaultB2 = ((Uint16)(ulDcuTotalAlarm >> 16U) & 0xFFU); // Apu Fault Byte 2
|
||||
Tx110.DcuFaultB3 = ((Uint16)(ulDcuTotalAlarm >> 24U) & 0xFFU); // Apu Fault Byte 3
|
||||
|
||||
ECanbMboxes.MBOX4.MDL.byte.BYTE0 = Tx110.DcuFaultB0;
|
||||
ECanbMboxes.MBOX4.MDL.byte.BYTE1 = Tx110.DcuFaultB1;
|
||||
ECanbMboxes.MBOX4.MDL.byte.BYTE2 = Tx110.DcuFaultB2;
|
||||
ECanbMboxes.MBOX4.MDL.byte.BYTE3 = Tx110.DcuFaultB3;
|
||||
ECanbMboxes.MBOX4.MDH.byte.BYTE4 = 0x0U;
|
||||
ECanbMboxes.MBOX4.MDH.byte.BYTE5 = 0x0U;
|
||||
ECanbMboxes.MBOX4.MDH.byte.BYTE6 = 0x0U;
|
||||
ECanbMboxes.MBOX4.MDH.byte.BYTE7 = 0x0U;
|
||||
ECanbMboxes.MBOX4.MDL.all = CPackMboxData(Tx110.DcuFaultB0, Tx110.DcuFaultB1, Tx110.DcuFaultB2, Tx110.DcuFaultB3);
|
||||
ECanbMboxes.MBOX4.MDH.all = CPackMboxData(0U, 0U, 0U, 0U);
|
||||
|
||||
ECanShadow.CANTRS.bit.TRS4 = 1U;
|
||||
ECanShadow.CANTA.bit.TA4 = 1U;
|
||||
ulTxMask |= (1UL << 4U); // MBOX 4
|
||||
break;
|
||||
}
|
||||
case 2U:
|
||||
@@ -906,17 +864,10 @@ void CSendECanDataB(void)
|
||||
// [120h]
|
||||
Tx120.AuxTotal = (Uint16)GET_ALL_AUX_STATUS();
|
||||
|
||||
ECanbMboxes.MBOX5.MDL.byte.BYTE0 = Tx120.AuxTotal;
|
||||
ECanbMboxes.MBOX5.MDL.byte.BYTE1 = 0x0U;
|
||||
ECanbMboxes.MBOX5.MDL.byte.BYTE2 = 0x0U;
|
||||
ECanbMboxes.MBOX5.MDL.byte.BYTE3 = 0x0U;
|
||||
ECanbMboxes.MBOX5.MDH.byte.BYTE4 = 0x0U;
|
||||
ECanbMboxes.MBOX5.MDH.byte.BYTE5 = 0x0U;
|
||||
ECanbMboxes.MBOX5.MDH.byte.BYTE6 = 0x0U;
|
||||
ECanbMboxes.MBOX5.MDH.byte.BYTE7 = 0x0U;
|
||||
ECanbMboxes.MBOX5.MDL.all = CPackMboxData(Tx120.AuxTotal, 0U, 0U, 0U);
|
||||
ECanbMboxes.MBOX5.MDH.all = CPackMboxData(0U, 0U, 0U, 0U);
|
||||
|
||||
ECanShadow.CANTRS.bit.TRS5 = 1U;
|
||||
ECanShadow.CANTA.bit.TA5 = 1U;
|
||||
ulTxMask |= (1UL << 5U); // MBOX 5
|
||||
break;
|
||||
}
|
||||
case 3U:
|
||||
@@ -934,17 +885,12 @@ void CSendECanDataB(void)
|
||||
fTemp = Adc_GlowPlug_I.fLpfValue * 10.0F;
|
||||
Tx121.GlowPlugCurrent = (Uint16)fTemp;
|
||||
|
||||
ECanbMboxes.MBOX6.MDL.byte.BYTE0 = ((Tx121.EngHeatVoltage >> 0U) & 0xFFU);
|
||||
ECanbMboxes.MBOX6.MDL.byte.BYTE1 = ((Tx121.EngHeatVoltage >> 8U) & 0xFFU);
|
||||
ECanbMboxes.MBOX6.MDL.byte.BYTE2 = ((Tx121.EngHeatCurrent >> 0U) & 0xFFU);
|
||||
ECanbMboxes.MBOX6.MDL.byte.BYTE3 = ((Tx121.EngHeatCurrent >> 8U) & 0xFFU);
|
||||
ECanbMboxes.MBOX6.MDH.byte.BYTE4 = ((Tx121.GlowPlugVoltage >> 0U) & 0xFFU);
|
||||
ECanbMboxes.MBOX6.MDH.byte.BYTE5 = ((Tx121.GlowPlugVoltage >> 8U) & 0xFFU);
|
||||
ECanbMboxes.MBOX6.MDH.byte.BYTE6 = ((Tx121.GlowPlugCurrent >> 0U) & 0xFFU);
|
||||
ECanbMboxes.MBOX6.MDH.byte.BYTE7 = ((Tx121.GlowPlugCurrent >> 8U) & 0xFFU);
|
||||
ECanbMboxes.MBOX6.MDL.all = CPackMboxData(((Tx121.EngHeatVoltage >> 0U) & 0xFFU), ((Tx121.EngHeatVoltage >> 8U) & 0xFFU),
|
||||
((Tx121.EngHeatCurrent >> 0U) & 0xFFU), ((Tx121.EngHeatCurrent >> 8U) & 0xFFU));
|
||||
ECanbMboxes.MBOX6.MDH.all = CPackMboxData(((Tx121.GlowPlugVoltage >> 0U) & 0xFFU), ((Tx121.GlowPlugVoltage >> 8U) & 0xFFU),
|
||||
((Tx121.GlowPlugCurrent >> 0U) & 0xFFU), ((Tx121.GlowPlugCurrent >> 8U) & 0xFFU));
|
||||
|
||||
ECanShadow.CANTRS.bit.TRS6 = 1U;
|
||||
ECanShadow.CANTA.bit.TA6 = 1U;
|
||||
ulTxMask |= (1UL << 6U); // MBOX 6
|
||||
break;
|
||||
}
|
||||
case 4U:
|
||||
@@ -962,17 +908,12 @@ void CSendECanDataB(void)
|
||||
fTemp = Adc_FuelPump_I.fLpfValue * 10.0F;
|
||||
Tx122.FuelPumpCurrent = (Uint16)fTemp;
|
||||
|
||||
ECanbMboxes.MBOX7.MDL.byte.BYTE0 = ((Tx122.SolenoidVoltage >> 0U) & 0xFFU);
|
||||
ECanbMboxes.MBOX7.MDL.byte.BYTE1 = ((Tx122.SolenoidVoltage >> 8U) & 0xFFU);
|
||||
ECanbMboxes.MBOX7.MDL.byte.BYTE2 = ((Tx122.SolenoidCurrent >> 0U) & 0xFFU);
|
||||
ECanbMboxes.MBOX7.MDL.byte.BYTE3 = ((Tx122.SolenoidCurrent >> 8U) & 0xFFU);
|
||||
ECanbMboxes.MBOX7.MDH.byte.BYTE4 = ((Tx122.FuelPumpVoltage >> 0U) & 0xFFU);
|
||||
ECanbMboxes.MBOX7.MDH.byte.BYTE5 = ((Tx122.FuelPumpVoltage >> 8U) & 0xFFU);
|
||||
ECanbMboxes.MBOX7.MDH.byte.BYTE6 = ((Tx122.FuelPumpCurrent >> 0U) & 0xFFU);
|
||||
ECanbMboxes.MBOX7.MDH.byte.BYTE7 = ((Tx122.FuelPumpCurrent >> 8U) & 0xFFU);
|
||||
ECanbMboxes.MBOX7.MDL.all = CPackMboxData(((Tx122.SolenoidVoltage >> 0U) & 0xFFU), ((Tx122.SolenoidVoltage >> 8U) & 0xFFU),
|
||||
((Tx122.SolenoidCurrent >> 0U) & 0xFFU), ((Tx122.SolenoidCurrent >> 8U) & 0xFFU));
|
||||
ECanbMboxes.MBOX7.MDH.all = CPackMboxData(((Tx122.FuelPumpVoltage >> 0U) & 0xFFU), ((Tx122.FuelPumpVoltage >> 8U) & 0xFFU),
|
||||
((Tx122.FuelPumpCurrent >> 0U) & 0xFFU), ((Tx122.FuelPumpCurrent >> 8U) & 0xFFU));
|
||||
|
||||
ECanShadow.CANTRS.bit.TRS7 = 1U;
|
||||
ECanShadow.CANTA.bit.TA7 = 1U;
|
||||
ulTxMask |= (1UL << 7U); // MBOX 7
|
||||
break;
|
||||
}
|
||||
case 5U:
|
||||
@@ -990,17 +931,12 @@ void CSendECanDataB(void)
|
||||
fTemp = Adc_Fan1_I.fLpfValue * 10.0F;
|
||||
Tx123.Fan1Current = (Uint16)fTemp;
|
||||
|
||||
ECanbMboxes.MBOX8.MDL.byte.BYTE0 = ((Tx123.CoolantPumpVoltage >> 0U) & 0xFFU);
|
||||
ECanbMboxes.MBOX8.MDL.byte.BYTE1 = ((Tx123.CoolantPumpVoltage >> 8U) & 0xFFU);
|
||||
ECanbMboxes.MBOX8.MDL.byte.BYTE2 = ((Tx123.CoolantPumpCurrent >> 0U) & 0xFFU);
|
||||
ECanbMboxes.MBOX8.MDL.byte.BYTE3 = ((Tx123.CoolantPumpCurrent >> 8U) & 0xFFU);
|
||||
ECanbMboxes.MBOX8.MDH.byte.BYTE4 = ((Tx123.Fan1Voltage >> 0U) & 0xFFU);
|
||||
ECanbMboxes.MBOX8.MDH.byte.BYTE5 = ((Tx123.Fan1Voltage >> 8U) & 0xFFU);
|
||||
ECanbMboxes.MBOX8.MDH.byte.BYTE6 = ((Tx123.Fan1Current >> 0U) & 0xFFU);
|
||||
ECanbMboxes.MBOX8.MDH.byte.BYTE7 = ((Tx123.Fan1Current >> 8U) & 0xFFU);
|
||||
ECanbMboxes.MBOX8.MDL.all = CPackMboxData(((Tx123.CoolantPumpVoltage >> 0U) & 0xFFU), ((Tx123.CoolantPumpVoltage >> 8U) & 0xFFU),
|
||||
((Tx123.CoolantPumpCurrent >> 0U) & 0xFFU), ((Tx123.CoolantPumpCurrent >> 8U) & 0xFFU));
|
||||
ECanbMboxes.MBOX8.MDH.all = CPackMboxData(((Tx123.Fan1Voltage >> 0U) & 0xFFU), ((Tx123.Fan1Voltage >> 8U) & 0xFFU),
|
||||
((Tx123.Fan1Current >> 0U) & 0xFFU), ((Tx123.Fan1Current >> 8U) & 0xFFU));
|
||||
|
||||
ECanShadow.CANTRS.bit.TRS8 = 1U;
|
||||
ECanShadow.CANTA.bit.TA8 = 1U;
|
||||
ulTxMask |= (1UL << 8U); // MBOX 8
|
||||
break;
|
||||
}
|
||||
default:
|
||||
@@ -1014,23 +950,18 @@ void CSendECanDataB(void)
|
||||
fTemp = Adc_Fan2_I.fLpfValue * 10.0F;
|
||||
Tx124.Fan2Current = (Uint16)fTemp;
|
||||
|
||||
ECanbMboxes.MBOX9.MDL.byte.BYTE0 = ((Tx124.Fan2Voltage >> 0U) & 0xFFU);
|
||||
ECanbMboxes.MBOX9.MDL.byte.BYTE1 = ((Tx124.Fan2Voltage >> 8U) & 0xFFU);
|
||||
ECanbMboxes.MBOX9.MDL.byte.BYTE2 = ((Tx124.Fan2Current >> 0U) & 0xFFU);
|
||||
ECanbMboxes.MBOX9.MDL.byte.BYTE3 = ((Tx124.Fan2Current >> 8U) & 0xFFU);
|
||||
ECanbMboxes.MBOX9.MDH.byte.BYTE4 = 0x0U;
|
||||
ECanbMboxes.MBOX9.MDH.byte.BYTE5 = 0x0U;
|
||||
ECanbMboxes.MBOX9.MDH.byte.BYTE6 = 0x0U;
|
||||
ECanbMboxes.MBOX9.MDH.byte.BYTE7 = 0x0U;
|
||||
ECanbMboxes.MBOX9.MDL.all = CPackMboxData(((Tx124.Fan2Voltage >> 0U) & 0xFFU), ((Tx124.Fan2Voltage >> 8U) & 0xFFU),
|
||||
((Tx124.Fan2Current >> 0U) & 0xFFU), ((Tx124.Fan2Current >> 8U) & 0xFFU));
|
||||
ECanbMboxes.MBOX9.MDH.all = CPackMboxData(0U, 0U, 0U, 0U);
|
||||
|
||||
ECanShadow.CANTRS.bit.TRS9 = 1U;
|
||||
ECanShadow.CANTA.bit.TA9 = 1U;
|
||||
ulTxMask |= (1UL << 9U); // MBOX 9
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
ECanbRegs.CANTRS.all = ECanShadow.CANTRS.all;
|
||||
ECanbRegs.CANTA.all = ECanShadow.CANTA.all;
|
||||
|
||||
ECanbRegs.CANTA.all = ulTxMask;
|
||||
ECanbRegs.CANTRS.all = ulTxMask;
|
||||
|
||||
uiTxDivid = (uiTxDivid + 1U) % 10U;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user