diff --git a/speeduino.ino b/speeduino.ino index 7377c69b..dee63b21 100644 --- a/speeduino.ino +++ b/speeduino.ino @@ -282,14 +282,20 @@ void loop() //Speed Density currentStatus.VE = get3DTableValue(fuelTable, currentStatus.MAP, currentStatus.RPM); //Perform lookup into fuel map for RPM vs MAP value currentStatus.PW = PW_SD(req_fuel_uS, currentStatus.VE, currentStatus.MAP, corrections, engineInjectorDeadTime); - currentStatus.advance = get3DTableValue(ignitionTable, currentStatus.MAP, currentStatus.RPM); //As above, but for ignition advance + if (configPage2.FixAng == 0) //Check whether the user has set a fixed timing angle + { currentStatus.advance = get3DTableValue(ignitionTable, currentStatus.MAP, currentStatus.RPM); } //As above, but for ignition advance + else + { currentStatus.advance = configPage2.FixAng; } } else { //Alpha-N currentStatus.VE = get3DTableValue(fuelTable, currentStatus.TPS, currentStatus.RPM); //Perform lookup into fuel map for RPM vs TPS value currentStatus.PW = PW_AN(req_fuel_uS, currentStatus.VE, currentStatus.TPS, corrections, engineInjectorDeadTime); //Calculate pulsewidth using the Alpha-N algorithm - currentStatus.advance = get3DTableValue(ignitionTable, currentStatus.TPS, currentStatus.RPM); //As above, but for ignition advance + if (configPage2.FixAng == 0) //Check whether the user has set a fixed timing angle + { currentStatus.advance = get3DTableValue(ignitionTable, currentStatus.TPS, currentStatus.RPM); } //As above, but for ignition advance + else + { currentStatus.advance = configPage2.FixAng; } } int injector1StartAngle = 0;