Add true cranking enrichment (As opposed to ASE)

This commit is contained in:
Josh Stewart 2015-02-07 08:29:51 +11:00
parent bd2fe2e660
commit 8523472e42
3 changed files with 24 additions and 11 deletions

View File

@ -22,6 +22,8 @@ byte correctionsTotal()
if (currentStatus.wueCorrection != 100) { sumCorrections = div((sumCorrections * currentStatus.wueCorrection), 100).quot; } if (currentStatus.wueCorrection != 100) { sumCorrections = div((sumCorrections * currentStatus.wueCorrection), 100).quot; }
result = correctionASE(); result = correctionASE();
if (result != 100) { sumCorrections = div((sumCorrections * result), 100).quot; } if (result != 100) { sumCorrections = div((sumCorrections * result), 100).quot; }
result = correctionCranking();
if (result != 100) { sumCorrections = div((sumCorrections * result), 100).quot; }
currentStatus.TAEamount = correctionAccel(); currentStatus.TAEamount = correctionAccel();
if (currentStatus.TAEamount != 100) { sumCorrections = div((sumCorrections * currentStatus.TAEamount), 100).quot; } if (currentStatus.TAEamount != 100) { sumCorrections = div((sumCorrections * currentStatus.TAEamount), 100).quot; }
result = correctionFloodClear(); result = correctionFloodClear();
@ -44,6 +46,16 @@ byte correctionWUE()
return table2D_getValue(WUETable, currentStatus.coolant + CALIBRATION_TEMPERATURE_OFFSET); return table2D_getValue(WUETable, currentStatus.coolant + CALIBRATION_TEMPERATURE_OFFSET);
} }
/*
Cranking Enrichment
Additional fuel % to be added when the engine is cranking
*/
byte correctionCranking()
{
if ( BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK) ) { return 100 + configPage1.crankingPct; }
else { return 100; }
}
/* /*
After Start Enrichment After Start Enrichment
This is a short period (Usually <20 seconds) immediately after the engine first fires (But not when cranking) This is a short period (Usually <20 seconds) immediately after the engine first fires (But not when cranking)
@ -51,8 +63,10 @@ where an additional amount of fuel is added (Over and above the WUE amount)
*/ */
byte correctionASE() byte correctionASE()
{ {
//Two checks are requiredL:
if (currentStatus.runSecs < configPage1.aseCount) //1) Is the negine run time less than the configured ase time
//2) Make sure we're not still cranking
if ( (currentStatus.runSecs < configPage1.aseCount) && !(BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK)) )
{ {
BIT_SET(currentStatus.engine, BIT_ENGINE_ASE); //Mark ASE as active. BIT_SET(currentStatus.engine, BIT_ENGINE_ASE); //Mark ASE as active.
return 100 + configPage1.asePct; return 100 + configPage1.asePct;
@ -60,8 +74,6 @@ byte correctionASE()
BIT_CLEAR(currentStatus.engine, BIT_ENGINE_ASE); //Mark ASE as inactive. BIT_CLEAR(currentStatus.engine, BIT_ENGINE_ASE); //Mark ASE as inactive.
return 100; return 100;
} }
/* /*

View File

@ -89,7 +89,10 @@ struct config1 {
byte asePct; //Afterstart enrichment (%) byte asePct; //Afterstart enrichment (%)
byte aseCount; //Afterstart enrichment cycles. This is the number of ignition cycles that the afterstart enrichment % lasts for byte aseCount; //Afterstart enrichment cycles. This is the number of ignition cycles that the afterstart enrichment % lasts for
byte wueValues[10]; //Warm up enrichment array (10 bytes) byte wueValues[10]; //Warm up enrichment array (10 bytes)
byte taeBins[4]; //TPS based acceleration enrichment bin 1 of 4 (ms) byte crankingPct; //Cranking enrichment
byte unused95;
byte unused96;
byte unused97;
byte taeColdA; byte taeColdA;
byte tpsThresh; byte tpsThresh;
byte taeTime; byte taeTime;

View File

@ -90,7 +90,7 @@ page = 1
asePct = scalar, U08, 82, "%", 1.0, 0.0, 0.0, 95.0, 0 asePct = scalar, U08, 82, "%", 1.0, 0.0, 0.0, 95.0, 0
aseCount = scalar, U08, 83, "s", 1.0, 0.0, 0.0, 255, 0 aseCount = scalar, U08, 83, "s", 1.0, 0.0, 0.0, 255, 0
wueBins = array, U08, 84, [ 10], "%", 1.0, 0.0, 0.0, 255, 0 wueBins = array, U08, 84, [ 10], "%", 1.0, 0.0, 0.0, 255, 0
unused94 = scalar, U08, 94, "ms", 0.1, 0.0, 0.0, 25.5, 1 crankingPct= scalar, U08, 94, "%", 1.0, 0.0, 0.0, 255, 0
unused95 = scalar, U08, 95, "ms", 0.1, 0.0, 0.0, 25.5, 1 unused95 = scalar, U08, 95, "ms", 0.1, 0.0, 0.0, 25.5, 1
unused96 = scalar, U08, 96, "ms", 0.1, 0.0, 0.0, 25.5, 1 unused96 = scalar, U08, 96, "ms", 0.1, 0.0, 0.0, 25.5, 1
unused97 = scalar, U08, 97, "ms", 0.1, 0.0, 0.0, 25.5, 1 unused97 = scalar, U08, 97, "ms", 0.1, 0.0, 0.0, 25.5, 1
@ -427,8 +427,7 @@ page = 3
field = "Pulsewidth at -40°C", crankCold field = "Pulsewidth at -40°C", crankCold
field = "Pulsewidth at 77°C", crankHot field = "Pulsewidth at 77°C", crankHot
field = "" field = ""
field = "Cranking Enrichment %", asePct field = "Cranking Enrichment %", crankingPct
field = "Number of seconds to run", aseCount
#else #else
field = "Cranking RPM (Max)", crankRPM field = "Cranking RPM (Max)", crankRPM
field = "Flood Clear level", tpsflood field = "Flood Clear level", tpsflood
@ -437,8 +436,7 @@ page = 3
field = "Pulsewidth at -40°F", crankCold field = "Pulsewidth at -40°F", crankCold
field = "Pulsewidth at 170°F", crankHot field = "Pulsewidth at 170°F", crankHot
field = "" field = ""
field = "Cranking Enrichment %", asePct field = "Cranking Enrichment %", crankingPct
field = "Number of seconds to run", aseCount
#endif #endif
dialog = aseSettings, "Afterstart Enrichment" dialog = aseSettings, "Afterstart Enrichment"
@ -775,7 +773,7 @@ help = helpEnrichments, "Enrichments Help"
indicator = { mapaccaen }, "MAP Accel", "MAP Accel", white, black, green, black indicator = { mapaccaen }, "MAP Accel", "MAP Accel", white, black, green, black
indicator = { tpsaccden }, "TPS Decel", "TPS Decel", white, black, green, black indicator = { tpsaccden }, "TPS Decel", "TPS Decel", white, black, green, black
indicator = { mapaccden }, "MAP Decel", "MAP Decel", white, black, green, black indicator = { mapaccden }, "MAP Decel", "MAP Decel", white, black, green, black
indicator = { tps > tpsflood }, "FLOOD OFF", "FLOOD CLEAR", white, black, red, black indicator = { (tps > tpsflood) && (rpm < crankRPM) }, "FLOOD OFF", "FLOOD CLEAR", white, black, red, black
;------------------------------------------------------------------------------- ;-------------------------------------------------------------------------------