Fix crash on higher IGN channel setups when using trigger fixed cranking timing

This commit is contained in:
Josh Stewart 2020-06-29 14:39:24 +10:00
parent 53bd588062
commit 6242fa4412
2 changed files with 8 additions and 10 deletions

View File

@ -598,7 +598,7 @@ void initialiseAll()
channel3IgnDegrees = 144;
channel4IgnDegrees = 216;
channel5IgnDegrees = 288;
maxIgnOutputs = 4; //Only 4 actual outputs, so that's all that can be cut
maxIgnOutputs = 5; //Only 4 actual outputs, so that's all that can be cut
if(configPage4.sparkMode == IGN_MODE_SEQUENTIAL)
{

View File

@ -1012,14 +1012,12 @@ void loop()
}
#endif
#if IGN_CHANNELS >= 2
tempCrankAngle = crankAngle - channel2IgnDegrees;
if( tempCrankAngle < 0) { tempCrankAngle += CRANK_ANGLE_MAX_IGN; }
tempStartAngle = ignition2StartAngle - channel2IgnDegrees;
if ( tempStartAngle < 0) { tempStartAngle += CRANK_ANGLE_MAX_IGN; }
//if (tempStartAngle > tempCrankAngle)
if (maxIgnOutputs >= 2)
{
unsigned long ignition2StartTime = 0;
if ( (tempStartAngle <= tempCrankAngle) && (ignitionSchedule2.Status == RUNNING) ) { tempStartAngle += CRANK_ANGLE_MAX_IGN; }
@ -1043,7 +1041,7 @@ void loop()
if( tempCrankAngle < 0) { tempCrankAngle += CRANK_ANGLE_MAX_IGN; }
tempStartAngle = ignition3StartAngle - channel3IgnDegrees;
if ( tempStartAngle < 0) { tempStartAngle += CRANK_ANGLE_MAX_IGN; }
//if (tempStartAngle > tempCrankAngle)
if (maxIgnOutputs >= 3)
{
unsigned long ignition3StartTime = 0;
if ( (tempStartAngle <= tempCrankAngle) && (ignitionSchedule3.Status == RUNNING) ) { tempStartAngle += CRANK_ANGLE_MAX_IGN; }
@ -1067,7 +1065,7 @@ void loop()
if( tempCrankAngle < 0) { tempCrankAngle += CRANK_ANGLE_MAX_IGN; }
tempStartAngle = ignition4StartAngle - channel4IgnDegrees;
if ( tempStartAngle < 0) { tempStartAngle += CRANK_ANGLE_MAX_IGN; }
//if (tempStartAngle > tempCrankAngle)
if (maxIgnOutputs >= 4)
{
unsigned long ignition4StartTime = 0;
@ -1092,7 +1090,7 @@ void loop()
if( tempCrankAngle < 0) { tempCrankAngle += CRANK_ANGLE_MAX_IGN; }
tempStartAngle = ignition5StartAngle - channel5IgnDegrees;
if ( tempStartAngle < 0) { tempStartAngle += CRANK_ANGLE_MAX_IGN; }
//if (tempStartAngle > tempCrankAngle)
if (maxIgnOutputs >= 5)
{
unsigned long ignition5StartTime = 0;
@ -1117,7 +1115,7 @@ void loop()
if( tempCrankAngle < 0) { tempCrankAngle += CRANK_ANGLE_MAX_IGN; }
tempStartAngle = ignition6StartAngle - channel6IgnDegrees;
if ( tempStartAngle < 0) { tempStartAngle += CRANK_ANGLE_MAX_IGN; }
//if (tempStartAngle > tempCrankAngle)
if (maxIgnOutputs >= 6)
{
unsigned long ignition6StartTime = 0;
if ( (tempStartAngle <= tempCrankAngle) && (ignitionSchedule6.Status == RUNNING) ) { tempStartAngle += CRANK_ANGLE_MAX_IGN; }
@ -1141,7 +1139,7 @@ void loop()
if( tempCrankAngle < 0) { tempCrankAngle += CRANK_ANGLE_MAX_IGN; }
tempStartAngle = ignition7StartAngle - channel7IgnDegrees;
if ( tempStartAngle < 0) { tempStartAngle += CRANK_ANGLE_MAX_IGN; }
//if (tempStartAngle > tempCrankAngle)
if (maxIgnOutputs >= 7)
{
unsigned long ignition7StartTime = 0;
if ( (tempStartAngle <= tempCrankAngle) && (ignitionSchedule7.Status == RUNNING) ) { tempStartAngle += CRANK_ANGLE_MAX_IGN; }
@ -1165,7 +1163,7 @@ void loop()
if( tempCrankAngle < 0) { tempCrankAngle += CRANK_ANGLE_MAX_IGN; }
tempStartAngle = ignition8StartAngle - channel8IgnDegrees;
if ( tempStartAngle < 0) { tempStartAngle += CRANK_ANGLE_MAX_IGN; }
//if (tempStartAngle > tempCrankAngle)
if (maxIgnOutputs >= 8)
{
unsigned long ignition8StartTime = 0;
if ( (tempStartAngle <= tempCrankAngle) && (ignitionSchedule8.Status == RUNNING) ) { tempStartAngle += CRANK_ANGLE_MAX_IGN; }