mirror of https://github.com/rusefi/speeduino.git
Allow for leading/trailing edge selection on missing tooth and dual wheel decoders
This commit is contained in:
parent
34780378c6
commit
af40812586
|
@ -268,7 +268,9 @@ struct config2 {
|
||||||
byte oddfire : 1;
|
byte oddfire : 1;
|
||||||
byte TrigPattern : 4;
|
byte TrigPattern : 4;
|
||||||
|
|
||||||
byte unused4_6;
|
byte TrigEdgeSec : 1;
|
||||||
|
byte unused4_6b : 7;
|
||||||
|
|
||||||
byte unused4_7;
|
byte unused4_7;
|
||||||
byte IdleAdvRPM;
|
byte IdleAdvRPM;
|
||||||
byte IdleAdvCLT; //The temperature below which the idle is advanced
|
byte IdleAdvCLT; //The temperature below which the idle is advanced
|
||||||
|
|
|
@ -246,7 +246,14 @@ page = 4
|
||||||
IgInv = bits, U08, 5[2:2], "Going Low", "Going High"
|
IgInv = bits, U08, 5[2:2], "Going Low", "Going High"
|
||||||
oddfire = bits, U08, 5[3:3], "No", "Yes"
|
oddfire = bits, U08, 5[3:3], "No", "Yes"
|
||||||
TrigPattern= bits, U08, 5[4:7], "Missing Tooth", "Basic Distributor", "Dual Wheel", "GM 7X", "4G63 / Miata", "GM 24X", "Jeep 2000", "Audi 135", "Honda D17", "Miata 99-05", "Mazda AU", "Non-360 Dual", "INVALID", "INVALID", "INVALID", "INVALID"
|
TrigPattern= bits, U08, 5[4:7], "Missing Tooth", "Basic Distributor", "Dual Wheel", "GM 7X", "4G63 / Miata", "GM 24X", "Jeep 2000", "Audi 135", "Honda D17", "Miata 99-05", "Mazda AU", "Non-360 Dual", "INVALID", "INVALID", "INVALID", "INVALID"
|
||||||
unused4-6 = scalar, U08, 6, "Deg", 0.352,-28.4, -10, 80, 0
|
TrigEdgeSec= bits, U08, 6[0:0], "Leading", "Trailing"
|
||||||
|
unused4-6b = bits, U08, 6[1:1], "No", "Yes"
|
||||||
|
unused4-6c = bits, U08, 6[2:2], "No", "Yes"
|
||||||
|
unused4-6d = bits, U08, 6[3:3], "No", "Yes"
|
||||||
|
unused4-6e = bits, U08, 6[4:4], "No", "Yes"
|
||||||
|
unused4-6f = bits, U08, 6[5:5], "No", "Yes"
|
||||||
|
unused4-6g = bits, U08, 6[6:6], "No", "Yes"
|
||||||
|
unused4-6h = bits, U08, 6[7:7], "No", "Yes"
|
||||||
unused4-7 = scalar, U08, 7, "ADC", 1, 0, 0, 255, 0
|
unused4-7 = scalar, U08, 7, "ADC", 1, 0, 0, 255, 0
|
||||||
IdleAdvRPM = scalar, U08, 8, "RPM", 100, 0, 0, 1200, 0
|
IdleAdvRPM = scalar, U08, 8, "RPM", 100, 0, 0, 1200, 0
|
||||||
#if CELSIUS
|
#if CELSIUS
|
||||||
|
@ -684,6 +691,7 @@ menuDialog = main
|
||||||
TrigAngMul = "A multiplier used by non-360 degree tooth wheels (i.e. Wheels where the tooth count doesn't divide evenly into 360. Usage: (360 * <multiplier>) / tooth_count = Whole number"
|
TrigAngMul = "A multiplier used by non-360 degree tooth wheels (i.e. Wheels where the tooth count doesn't divide evenly into 360. Usage: (360 * <multiplier>) / tooth_count = Whole number"
|
||||||
StgCycles = "The number of revolutions that will be skipped during cranking before the injectors and coils are fired."
|
StgCycles = "The number of revolutions that will be skipped during cranking before the injectors and coils are fired."
|
||||||
TrigEdge = "The Trigger edge of the primary sensor.\nLeading.\nTrailing."
|
TrigEdge = "The Trigger edge of the primary sensor.\nLeading.\nTrailing."
|
||||||
|
TrigEdgeSec = "The Trigger edge of the secondary (Cam) sensor.\nLeading.\nTrailing."
|
||||||
TrigFilter = "Tuning of the trigger filter algorithm. The more aggressive the setting, the more noise will be removed, however this increases the chance of some true readings being filtered out (False positive). Medium is safe for most setups. Only select 'Aggressive' if no other options are working"
|
TrigFilter = "Tuning of the trigger filter algorithm. The more aggressive the setting, the more noise will be removed, however this increases the chance of some true readings being filtered out (False positive). Medium is safe for most setups. Only select 'Aggressive' if no other options are working"
|
||||||
|
|
||||||
sparkMode = "Wasted Spark: Ignition outputs are on the channels <= half the number of cylinders. Eg 4 cylinder outputs on IGN1 and IGN2.\nSingle Channel: All ignition pulses are output on IGN1.\nWasted COP: Ignition pulses are output on all ignition channels up to the number of cylinders. Eg 4 cylinder outputs on all ignition channels. No valid for >4 cylinders"
|
sparkMode = "Wasted Spark: Ignition outputs are on the channels <= half the number of cylinders. Eg 4 cylinder outputs on IGN1 and IGN2.\nSingle Channel: All ignition pulses are output on IGN1.\nWasted COP: Ignition pulses are output on all ignition channels up to the number of cylinders. Eg 4 cylinder outputs on all ignition channels. No valid for >4 cylinders"
|
||||||
|
@ -905,6 +913,7 @@ menuDialog = main
|
||||||
field = "Note: This is the number of revolutions that will be skipped during"
|
field = "Note: This is the number of revolutions that will be skipped during"
|
||||||
field = "cranking before the injectors and coils are fired"
|
field = "cranking before the injectors and coils are fired"
|
||||||
field = "Trigger edge", TrigEdge
|
field = "Trigger edge", TrigEdge
|
||||||
|
field = "Secondary trigger edge", TrigEdgeSec, { TrigPattern == 0 || TrigPattern == 2 }
|
||||||
field = "Trigger Filter", TrigFilter
|
field = "Trigger Filter", TrigFilter
|
||||||
|
|
||||||
dialog = sparkSettings,"Spark Settings",4
|
dialog = sparkSettings,"Spark Settings",4
|
||||||
|
|
|
@ -328,7 +328,8 @@ void setup()
|
||||||
|
|
||||||
if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering)
|
if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering)
|
||||||
else { attachInterrupt(triggerInterrupt, trigger, FALLING); }
|
else { attachInterrupt(triggerInterrupt, trigger, FALLING); }
|
||||||
attachInterrupt(triggerInterrupt2, triggerSec_missingTooth, RISING);
|
if(configPage2.TrigEdgeSec == 0) { attachInterrupt(triggerInterrupt2, triggerSec_missingTooth, RISING); }
|
||||||
|
else { attachInterrupt(triggerInterrupt2, triggerSec_missingTooth, FALLING); }
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 1:
|
case 1:
|
||||||
|
@ -350,7 +351,8 @@ void setup()
|
||||||
|
|
||||||
if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering)
|
if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering)
|
||||||
else { attachInterrupt(triggerInterrupt, trigger, FALLING); }
|
else { attachInterrupt(triggerInterrupt, trigger, FALLING); }
|
||||||
attachInterrupt(triggerInterrupt2, triggerSec_DualWheel, RISING);
|
if(configPage2.TrigEdgeSec == 0) { attachInterrupt(triggerInterrupt2, triggerSec_DualWheel, RISING); }
|
||||||
|
else { attachInterrupt(triggerInterrupt2, triggerSec_DualWheel, FALLING); }
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 3:
|
case 3:
|
||||||
|
|
Loading…
Reference in New Issue