Allow for leading/trailing edge selection on missing tooth and dual wheel decoders
This commit is contained in:
parent
34780378c6
commit
af40812586
|
@ -267,8 +267,10 @@ struct config2 {
|
|||
byte IgInv : 1;
|
||||
byte oddfire : 1;
|
||||
byte TrigPattern : 4;
|
||||
|
||||
byte TrigEdgeSec : 1;
|
||||
byte unused4_6b : 7;
|
||||
|
||||
byte unused4_6;
|
||||
byte unused4_7;
|
||||
byte IdleAdvRPM;
|
||||
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"
|
||||
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"
|
||||
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
|
||||
IdleAdvRPM = scalar, U08, 8, "RPM", 100, 0, 0, 1200, 0
|
||||
#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"
|
||||
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."
|
||||
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"
|
||||
|
||||
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 = "cranking before the injectors and coils are fired"
|
||||
field = "Trigger edge", TrigEdge
|
||||
field = "Secondary trigger edge", TrigEdgeSec, { TrigPattern == 0 || TrigPattern == 2 }
|
||||
field = "Trigger Filter", TrigFilter
|
||||
|
||||
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)
|
||||
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;
|
||||
|
||||
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)
|
||||
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;
|
||||
|
||||
case 3:
|
||||
|
|
Loading…
Reference in New Issue