Initial interface work on rotary ignition modes

This commit is contained in:
Josh Stewart 2017-08-23 08:14:11 +10:00
parent cf6beeb53c
commit 539618c583
3 changed files with 44 additions and 7 deletions

View File

@ -216,7 +216,7 @@ page = 2
baroCorr = bits, U08, 38, [3:3], "Off", "On"
injLayout = bits, U08, 38, [4:5], "Paired", "Semi-Sequential", "INVALID", "Sequential"
perToothIgn= bits, U08, 38, [6:6], "No", "Yes"
unused2-38h= bits, U08, 38, [7:7], "No", "Yes"
dfcoEnabled= bits, U08, 38, [7:7], "Off", "On"
primePulse = scalar, U08, 39, "ms", 0.1, 0.0, 0.0, 25.5, 1
dutyLim = scalar, U08, 40, "%", 1.0, 0.0, 0.0, 100.0, 0
@ -293,8 +293,7 @@ page = 4
;Dwell control
dwellcont = bits, U08, 12, [0:0], "INVALID", "Dwell control"
useDwellLim= bits, U08, 12, [1:1], "Off", "On"
sparkMode = bits, U08, 12, [2:3], "Wasted Spark", "Single Channel", "Wasted COP", "Sequential"
dfcoEnabled= bits, U08, 12, [4:4], "Off", "On"
sparkMode = bits, U08, 12, [2:4], "Wasted Spark", "Single Channel", "Wasted COP", "Sequential", "Rotary", INVALID, INVALID, INVALID
TrigFilter = bits, U08, 12, [5:6], "Off", "Weak", "Medium", "Aggressive"
ignCranklock=bits, U08, 12, [7:7], "Off", "On"
dwellcrank = scalar, U08, 13, "ms", 0.1, 0, 0, 25, 1
@ -700,7 +699,21 @@ page = 11
#endif
crankingEnrichValues= array, U08, 4, [4], "%", 1.0, 0.0, 0, 255, 0 ; Values for the cranking enrichment curve
unused11_8_192 = array, U08, 8,[184], "RPM", 100.0, 0.0, 100, 25500, 0
rotaryType = bits , U08, 8, [0:1], "FC", "FD", "RX8", "INVALID"
unused11-8c = bits , U08, 8, [2:2], "Off","On"
unused11-8d = bits , U08, 8, [3:3], "Off","On"
unused11-8e = bits , U08, 8, [4:4], "Off","On"
unused11-8f = bits , U08, 8, [5:5], "Off","On"
unused11-8g = bits , U08, 8, [6:6], "Off","On"
unused11-8h = bits , U08, 8, [7:7], "Off","On"
rotarySplitValues = array, U08, 9, [8], "degrees", 1.0, 0.0, 0.0, 40, 0
#if SPEED_DENSITY
rotarySplitBins = array, U08, 17, [8], "kPa", 2.0, 0.0, 0.0, 511.0, 0
#elif ALPHA_N
rotarySplitBins = array, U08, 17, [8], "TPS", 2.0, 0.0, 0.0, 100.0, 0
#endif
unused11_8_192 = array, U08, 25,[167], "RPM", 100.0, 0.0, 100, 25500, 0
;-------------------------------------------------------------------------------
@ -843,6 +856,7 @@ menuDialog = main
subMenu = dwellSettings, "Dwell settings"
subMenu = dwell_correction_curve, "Dwell Compensation"
subMenu = iat_retard_curve, "&IAT Retard"
subMenu = rotary_ignition, "Rotary Ignition", { sparkMode == 4 }
;subMenu = wheelsim, "Stim for wheel"
;subMenu = oddwheel, "Oddfire Wheel settings", 7, { wheelon && oddfire }
@ -1362,6 +1376,10 @@ menuDialog = main
field = "Note: Set the maximum dwell time at least 3ms above"
field = "your desired dwell time (Including cranking)"
dialog = rotary_ignition, "Rotary Ignition", 4
field = "Ignition Configuration", rotaryType
panel = rotaryTrailing_curve
dialog = RevLimiterS, "Rev Limiter", 4
topicHelp = "http://speeduino.com/wiki/index.php/Rev_Limits"
field = "Rev Limiter"
@ -1902,6 +1920,18 @@ cmdtestspk450dc = "E\x03\x0C"
xBins = iacBins, coolant
yBins = iacCLValues
curve = rotaryTrailing_curve, "Rotary Trailing Split"
columnLabel = "Engine load", "Split"
yAxis = 0, 40, 4
#if SPEED_DENSITY
xBins = rotarySplitBins, map
xAxis = 0, 250, 5
#else
xBins = rotarySplitBins, throttle
xAxis = 0, 100, 5
#endif
yBins = rotarySplitValues
; Warmup enrichment curve
curve = warmup_curve, "Warmup Enrichment (WUE) Curve"
;topicHelp = "file://$getProjectsDirPath()/docs/xxx.pdf#wue"

View File

@ -83,6 +83,7 @@
#define IGN_MODE_SINGLE 1
#define IGN_MODE_WASTEDCOP 2
#define IGN_MODE_SEQUENTIAL 3
#define IGN_MODE_ROTARY 4
#define SIZE_BYTE 8
#define SIZE_INT 16
@ -322,7 +323,7 @@ struct config1 {
byte baroCorr : 1;
byte injLayout : 2;
byte perToothIgn : 1;
byte unused2_38h : 1;
byte dfcoEnabled : 1; //Whether or not DFCO is turned on
byte primePulse;
byte dutyLim;
@ -381,8 +382,7 @@ struct config2 {
byte dwellCont : 1; //Fixed duty dwell control
byte useDwellLim : 1; //Whether the dwell limiter is off or on
byte sparkMode : 2; //Spark output mode (Eg Wasted spark, single channel or Wasted COP)
byte dfcoEnabled : 1; //Whether or not DFCO is turned on
byte sparkMode : 3; //Spark output mode (Eg Wasted spark, single channel or Wasted COP)
byte triggerFilter : 2; //The mode of trigger filter being used (0=Off, 1=Light (Not currently used), 2=Normal, 3=Aggressive)
byte ignCranklock : 1; //Whether or not the ignition timing during cranking is locked to a CAS pulse. Only currently valid for Basic distributor and 4G63.

View File

@ -583,6 +583,13 @@ void setup()
ign5EndFunction = endCoil5Charge;
break;
case IGN_MODE_ROTARY:
ign1StartFunction = beginCoil1Charge;
ign1EndFunction = endCoil1Charge;
ign2StartFunction = beginCoil1Charge;
ign2EndFunction = endCoil1Charge;
default:
//Wasted spark (Shouldn't ever happen anyway)
ign1StartFunction = beginCoil1Charge;