This commit is contained in:
Josh Stewart 2020-04-26 08:30:53 +10:00
commit ba4ca143ae
1 changed files with 4 additions and 2 deletions

View File

@ -214,7 +214,7 @@ byte correctionASE()
}
else
{
if ( (runSecsX10 - aseTsnStart) < configPage2.aseTsnDelay )
if (( (runSecsX10 - aseTsnStart) < configPage2.aseTsnDelay ) && (!BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK)) ) //Cranking check needs to be here also, so cranking and afterstart enrichments won't run simultaneously
{
BIT_SET(currentStatus.engine, BIT_ENGINE_ASE); //Mark ASE as active.
ASEValue = 100 + map((runSecsX10 - aseTsnStart), 0, configPage2.aseTsnDelay,\
@ -529,6 +529,8 @@ byte correctionAFRClosedLoop()
//Note that this should only run after the sensor warmup delay necause it is used within the Include AFR option
if(currentStatus.runSecs > configPage6.ego_sdelay) { currentStatus.afrTarget = get3DTableValue(&afrTable, currentStatus.fuelLoad, currentStatus.RPM); } //Perform the target lookup
AFRValue = currentStatus.egoCorrection; //Need to record this here, just to make sure the correction stays 'on' even if the nextCycle count isn't ready
if(ignitionCount >= AFRnextCycle)
{
AFRnextCycle = ignitionCount + configPage6.egoCount; //Set the target ignition event for the next calculation
@ -536,7 +538,6 @@ byte correctionAFRClosedLoop()
//Check all other requirements for closed loop adjustments
if( (currentStatus.coolant > (int)(configPage6.egoTemp - CALIBRATION_TEMPERATURE_OFFSET)) && (currentStatus.RPM > (unsigned int)(configPage6.egoRPM * 100)) && (currentStatus.TPS < configPage6.egoTPSMax) && (currentStatus.O2 < configPage6.ego_max) && (currentStatus.O2 > configPage6.ego_min) && (currentStatus.runSecs > configPage6.ego_sdelay) )
{
AFRValue = currentStatus.egoCorrection; //Need to record this here, just to make sure the correction stays 'on' even if the nextCycle count isn't ready
//Check which algorithm is used, simple or PID
if (configPage6.egoAlgorithm == EGO_ALGORITHM_SIMPLE)
@ -580,6 +581,7 @@ byte correctionAFRClosedLoop()
}
else { AFRValue = 100; } // Occurs if the egoAlgorithm is set to 0 (No Correction)
} //Multi variable check
else { AFRValue = 100; } // If multivariable check fails disable correction
} //Ignition count check
} //egoType