Gear Display Logic for 8AT and 6MT Transmissions
/***************************************************************************
- HEADER-FILES (Only those that are needed in this file) ***************************************************************************/ / System-headerfiles */
/* Own headerfiles */
#include 'gear1c1.h'
#include '../adapt/gear1ct.h'
#include '../adapt/gear1ci.h'
/***************************************************************************
- GLOBAL DEFINITIONS
- In this section define
-
- all global ROM-constants of your module
-
- all global variables of your module ****************************************************************************/ SYN_tstGearDpoolData stGearPosi; SYN_tstShiftSymbolDpoolData stShiftSymbol;
void GEAR_vMain(void) { //Timeout processing if (Flg_ShiftRecommend_M_tmout() || Flg_Tgtgear_Down_tmout() || Flg_Tgtgear_Up_tmout()) { stGearPosi.GEAR_u8GearPosi = GEAR_nGearBlank; stShiftSymbol.GEAR_u8ShiftSymbolPosi = GEAR__nenSymbolBlank; }
switch (EEH_biGetCFG2_Transmission())
{
case (GEAR__nu8Transmission8AT):
{
//Determine the current gear
switch (DrvModDisp_read())
{
case (GEAR__nenTargetGearN):
{
if (DisplayGear_read() == GEAR__nenTargetGearP)
{
if (TCU_gear_flashing_read())
stGearPosi.GEAR_u8GearPosi = GEAR_nGearFlashingP;
else stGearPosi.GEAR_u8GearPosi = GEAR_nGearP;
}
//DisplayGear If other values are taken, the F field is empty
else {}
break;
}
case (GEAR__nenShiftLeverPosD):
{
switch (DisplayGear_read())
{
case (GEAR__nenTargetGear1):
{
if (TCU_gear_flashing_read())
stGearPosi.GEAR_u8GearPosi = GEAR_nGearFlashingD1;
else stGearPosi.GEAR_u8GearPosi = GEAR_nGearD1;
break;
}
case (GEAR__nenTargetGear2):
{
if (TCU_gear_flashing_read())
stGearPosi.GEAR_u8GearPosi = GEAR_nGearFlashingD2;
else stGearPosi.GEAR_u8GearPosi = GEAR_nGearD2;
break;
}
case (GEAR__nenTargetGear3):
{
if (TCU_gear_flashing_read())
stGearPosi.GEAR_u8GearPosi = GEAR_nGearFlashingD3;
else stGearPosi.GEAR_u8GearPosi = GEAR_nGearD3;
break;
}
case (GEAR__nenTargetGear4):
{
if (TCU_gear_flashing_read())
stGearPosi.GEAR_u8GearPosi = GEAR_nGearFlashingD4;
else stGearPosi.GEAR_u8GearPosi = GEAR_nGearD4;
break;
}
case (GEAR__nenTargetGear5):
{
if (TCU_gear_flashing_read())
stGearPosi.GEAR_u8GearPosi = GEAR_nGearFlashingD5;
else stGearPosi.GEAR_u8GearPosi = GEAR_nGearD5;
break;
}
case (GEAR__nenTargetGear6):
{
if (TCU_gear_flashing_read())
stGearPosi.GEAR_u8GearPosi = GEAR_nGearFlashingD6;
else stGearPosi.GEAR_u8GearPosi = GEAR_nGearD6;
break;
}
case (GEAR__nenTargetGear7):
{
if (TCU_gear_flashing_read())
stGearPosi.GEAR_u8GearPosi = GEAR_nGearFlashingD7;
else stGearPosi.GEAR_u8GearPosi = GEAR_nGearD7;
break;
}
case (GEAR__nenTargetGear8):
{
if (TCU_gear_flashing_read())
stGearPosi.GEAR_u8GearPosi = GEAR_nGearFlashingD8;
else stGearPosi.GEAR_u8GearPosi = GEAR_nGearD8;
break;
}
default:
break;
}
}
case (GEAR__nenShiftLeverPosN):
{
if (DisplayGear_read() == GEAR__nenTargetGearN)
{
if (TCU_gear_flashing_read())
stGearPosi.GEAR_u8GearPosi = GEAR_nGearFlashingN;
else stGearPosi.GEAR_u8GearPosi = GEAR_nGearN;
}
//DisplayGear If other values are taken, the F field is empty
else {}
break;
}
case (GEAR__nenShiftLeverPosR):
{
if (DisplayGear_read() == GEAR__nenTargetGearR)
{
if (TCU_gear_flashing_read())
stGearPosi.GEAR_u8GearPosi = GEAR_nGearFlashingR;
else stGearPosi.GEAR_u8GearPosi = GEAR_nGearR;
}
//DisplayGear If other values are taken, the F field is empty
else {}
break;
}
case (GEAR__nenShiftLeverPosM):
{
switch (DisplayGear_read())
{
case (GEAR__nenTargetGear1):
{
stGearPosi.GEAR_u8GearPosi = GEAR_nGear1;
break;
}
case (GEAR__nenTargetGear2):
{
stGearPosi.GEAR_u8GearPosi = GEAR_nGear2;
break;
}
case (GEAR__nenTargetGear3):
{
stGearPosi.GEAR_u8GearPosi = GEAR_nGear3;
break;
}
case (GEAR__nenTargetGear4):
{
stGearPosi.GEAR_u8GearPosi = GEAR_nGear4;
break;
}
case (GEAR__nenTargetGear5):
{
stGearPosi.GEAR_u8GearPosi = GEAR_nGear5;
break;
}
case (GEAR__nenTargetGear6):
{
stGearPosi.GEAR_u8GearPosi = GEAR_nGear6;
break;
}
case (GEAR__nenTargetGear7):
{
stGearPosi.GEAR_u8GearPosi = GEAR_nGear7;
break;
}
case (GEAR__nenTargetGear8):
{
stGearPosi.GEAR_u8GearPosi = GEAR_nGear8;
break;
}
default:
break;
}
break;
}
//DrvModDisp If other values are taken, the F field is empty
default:
break;
}
//Gear shift handling
switch (ShiftRecommend_M_read())
{
case (GEAR__nenTargetGear1):
{
stShiftSymbol.GEAR_u8ShiftSymbolPosi = GEAR__nenSymbolUp;
break;
}
case (GEAR__nenTargetGear2):
{
stShiftSymbol.GEAR_u8ShiftSymbolPosi = GEAR__nenSymbolDown;
break;
}
default:
{
stShiftSymbol.GEAR_u8ShiftSymbolPosi = GEAR__nenSymbolBlank;
break;
}
}
break;
}
case (GEAR__nu8Transmission6MT):
{
if (Tgtgear_Up_read() == 0x1 && Tgtgear_Down_read() == 0x0)
{
stShiftSymbol.GEAR_u8ShiftSymbolPosi = GEAR__nenSymbolUp;
}
else if ((Tgtgear_Up_read() == 0x0 && Tgtgear_Down_read() == 0x1))
{
stShiftSymbol.GEAR_u8ShiftSymbolPosi = GEAR__nenSymbolDown;
}
else
{
stShiftSymbol.GEAR_u8ShiftSymbolPosi = GEAR__nenSymbolBlank;
}
break;
}
//The gear display function is not turned on
default:
break;
}
printf('Gear Main\n');
}
原文地址: https://www.cveoy.top/t/topic/oRrs 著作权归作者所有。请勿转载和采集!