/***************************************************************************

  • 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');

}

Gear Display Logic for 8AT and 6MT Transmissions

原文地址: https://www.cveoy.top/t/topic/oRrs 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录