PJSC(Pump Jet Solenoid Controller)はArduinoを使用したバイク用燃料噴射コントローラです。このプロジェクトは、オープンソースECUプロジェクト『Speeduino』をベースにしています。
[PJSC v1.10]カタナ用デコーダーバグフィックス01
@@ -6,7 +6,8 @@ | ||
6 | 6 | MTversion = 2.25 |
7 | 7 | |
8 | 8 | queryCommand = "Q" |
9 | - signature = "speeduino 201902" | |
9 | +;[PJSC v1.10] signature = "speeduino 201902" | |
10 | + signature = "speeduino 201905" ;[PJSC v1.10] | |
10 | 11 | ;[PJSC v1.01] signature = "PJSC v102" ;[PJSC v1.02] |
11 | 12 | versionInfo = "S" ;This info is what is displayed to user |
12 | 13 |
@@ -444,7 +445,7 @@ | ||
444 | 445 | algorithm3 = bits, U08, 119, [3:5], $loadSourceNames ;[PJSC v1.01] |
445 | 446 | ;[PJSC v1.03] unused2_119 = bits, U08, 119, [6:7] ;[PJSC v1.01] |
446 | 447 | swASE = bits, U08, 119, [6:6], "Off", "On" ;[PJSC v1.03] |
447 | - unused2_119 = bits, U08, 119, [7:7] ;[PJSC v1.03] | |
448 | + fixCrankAngleCalcMethod = bits, U08, 119, [7:7] "Default", "FIX_INTERVAL_REV" ;[PJSC v1.10] | |
448 | 449 | table4Usage = bits, U08, 120, [0:0], "Fuel", "Spark" ;[PJSC v1.01] |
449 | 450 | unused2_120 = bits, U08, 120, [1:7] ;[PJSC v1.01] |
450 | 451 | inj1SquirtStartEnd = bits, U08, 121, [0:0], "End angle", "Start angle" ;[PJSC v1.01] |
@@ -501,7 +502,7 @@ | ||
501 | 502 | TrigEdge = bits, U08, 5,[0:0], "RISING", "FALLING" |
502 | 503 | TrigSpeed = bits, U08, 5,[1:1], "Crank Speed", "Cam Speed" |
503 | 504 | IgInv = bits, U08, 5,[2:2], "Going Low", "Going High" |
504 | - TrigPattern= bits, U08, 5,[3:7], "Missing Tooth", "Basic Distributor", "Dual Wheel", "GM 7X", "4G63 / Miata / 3000GT", "GM 24X", "Jeep 2000", "Audi 135", "Honda D17", "Miata 99-05", "Mazda AU", "Non-360 Dual", "Nissan 360", "Subaru 6/7", "Daihatsu +1", "Harley EVO", "36-2-2-2", "NSR", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" | |
505 | + TrigPattern= bits, U08, 5,[3:7], "Missing Tooth", "Basic Distributor", "Dual Wheel", "GM 7X", "4G63 / Miata / 3000GT", "GM 24X", "Jeep 2000", "Audi 135", "Honda D17", "Miata 99-05", "Mazda AU", "Non-360 Dual", "Nissan 360", "Subaru 6/7", "Daihatsu +1", "Harley EVO", "36-2-2-2", "NSR", "KATANA", "KATANA2", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" | |
505 | 506 | TrigEdgeSec= bits, U08, 6,[0:0], "RISING", "FALLING" |
506 | 507 | fuelPumpPin= bits , U08, 6,[1:6], "Board Default", "INVALID", "INVALID", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "A8", "A9", "A10", "A11", "A12", "A13", "A14", "A15", "INVALID" |
507 | 508 | useResync = bits, U08, 6,[7:7], "No", "Yes" |
@@ -585,7 +586,8 @@ | ||
585 | 586 | ;[PJSC v1.02] unused4-89 = array, U08, 89, [38], "%", 1.0, 0.0, 0.0, 255, 0 ;[PJSC v1.01] |
586 | 587 | crankingFilter = bits, U08, 89, [0:0], "Enable", "Disable" ;[PJSC v1.02] |
587 | 588 | unused4-89 = bits, U08, 89, [1:7] ;[PJSC v1.02] |
588 | - unused4-90 = array, U08, 90, [37], "%", 1.0, 0.0, 0.0, 255, 0 ;[PJSC v1.02] | |
589 | + capturingInterval = scalar, U08, 90, "pulse", 1.0, 0.0, 0.0, 255, 0 ;[PJSC v1.10] | |
590 | + unused4-91 = array, U08, 91, [36], "%", 1.0, 0.0, 0.0, 255, 0 ;[PJSC v1.10] | |
589 | 591 | |
590 | 592 | ;-------------------------------------------------- |
591 | 593 | ;Start AFR page |
@@ -1624,7 +1626,12 @@ | ||
1624 | 1626 | subMenu = tacho, "Tacho Output", { muxout1selection == 7 || muxout2selection == 7 } ;[PJSC v1.01] For MUX selection |
1625 | 1627 | |
1626 | 1628 | subMenu = std_separator ;[PJSC] |
1627 | - subMenu = inputPortSetting, "Input Port Setting" ;[PJSC] | |
1629 | + subMenu = inputPortSetting, "Input Port Selection" ;[PJSC v1.10] | |
1630 | + subMenu = analogInputPort1, "Exhaust valve position capture setting" ;[PJSC v1.10] | |
1631 | + subMenu = analogInputPort2, "Exhaust Gas Temperature sensor setting" ;[PJSC v1.10] | |
1632 | + subMenu = captSparkSetting, "External Spark Timing capture setting" ;[PJSC v1.10] | |
1633 | + subMenu = captDutyPulseSettingCh1, "Duty Pulse caputure ch1 setting" ;[PJSC v1.10] | |
1634 | + subMenu = captDutyPulseSettingCh2, "Duty Pulse caputure ch2 setting" ;[PJSC v1.10] | |
1628 | 1635 | |
1629 | 1636 | subMenu = std_separator |
1630 | 1637 |
@@ -1970,6 +1977,7 @@ | ||
1970 | 1977 | ; | |
1971 | 1978 | dialog = captSparkSetting, "Capture External Spark Control" ; | |
1972 | 1979 | field = "Spark capture trigger edge", externalTrigEdge ; | |
1980 | + field = "Spark capture interval", capturingInterval ; | | |
1973 | 1981 | field = "Spark capture hysteresis", exTrigHysteresis ; | |
1974 | 1982 | ; | |
1975 | 1983 | dialog = captDutyPulseSetting, "Capture Duty Pulse Control" ; | |
@@ -2023,62 +2031,39 @@ | ||
2023 | 2031 | dialog = digitalInputPort3select, "" ; | |
2024 | 2032 | field = "", dutyPulseCaptureEnabled2 ; | |
2025 | 2033 | ; | |
2026 | - dialog = captDutyPulseSettingCh1, "Capture Duty Pulse Control" ; | | |
2034 | + dialog = captDutyPulseSettingCh1, "Capture Duty Pulse Control CH1" ; | | |
2027 | 2035 | field = "Duty pulse ON Level ch1", dutyPulseOnLevel ; | |
2028 | 2036 | ; | |
2029 | - dialog = captDutyPulseSettingCh2, "Capture Duty Pulse Control" ; | | |
2037 | + dialog = captDutyPulseSettingCh2, "Capture Duty Pulse Control CH2" ; | | |
2030 | 2038 | field = "Duty pulse ON Level ch2", dutyPulseOnLevel2 ; | |
2031 | 2039 | ; | |
2032 | - dialog = analogInputPort1_controls, "", border ; | | |
2033 | - panel = analogInputPort1select, West ; | | |
2034 | - field = "" ; | | |
2035 | - panel = captExValveSetting, East, { analogInputPortSelect == 1 } ; | | |
2036 | - ; | | |
2037 | 2040 | dialog = analogInputPort1_r, "Reference ADC Gauge" ; | |
2038 | 2041 | gauge = exValveADCGauge ; | |
2039 | 2042 | ; | |
2040 | 2043 | dialog = analogInputPort1,"Analog Input Port1", xAxis ; | |
2041 | - panel = analogInputPort1_controls ; | | |
2044 | + panel = captExValveSetting ; | | |
2042 | 2045 | panel = analogInputPort1_r ; | |
2043 | 2046 | ; | |
2044 | - dialog = analogInputPort2_settings, "" ; |[PJSC v1.03] | |
2045 | - panel = calibrateBaroSetting, { analogInputPortSelect2 == 1 } ; | | |
2046 | - panel = calibrateEGTsetting, { analogInputPortSelect2 == 2 } ; | | |
2047 | + dialog = analogInputPort2_r, "Reference EGT ADC Gauge" ; | | |
2048 | + gauge = EGTADCGauge ; | | |
2047 | 2049 | ; | |
2048 | - dialog = analogInputPort2_controls, "", border ; |[PJSC v1.03] | |
2049 | - panel = analogInputPort2select, West ; | | | |
2050 | - field = "" ; | | | |
2051 | - panel = analogInputPort2_settings, East ; | | | |
2052 | - ; | | | |
2053 | - dialog = analogInputPort2_r, "Reference Baro Gauge" ; | | | |
2054 | - gauge = baroGauge ; | | | |
2055 | - ; | | | |
2056 | - dialog = analogInputPort2,"Analog Input Port2", xAxis ; | | | |
2057 | - panel = analogInputPort2_controls ; | V | |
2058 | - panel = analogInputPort2_r ; |[PJSC v1.03] | |
2050 | + dialog = analogInputPort2,"Analog Input Port2", xAxis ; | | |
2051 | + panel = calibrateEGTsetting ; | | |
2052 | + panel = analogInputPort2_r ; | | |
2059 | 2053 | ; | |
2060 | - dialog = digitalInputPort1, "Digital Input Port1", border ; | | |
2061 | - panel = digitalInputPort1select, West ; | | |
2062 | - field = "" ; | | |
2063 | - panel = captSparkSetting, East, { exTrigModeSelect == 1 } ; | | |
2064 | - ; | | |
2065 | - dialog = digitalInputPort2, "Digital Input Port2", border ; | | |
2066 | - panel = digitalInputPort2select, West ; | | |
2067 | - field = "" ; | | |
2068 | - panel = captDutyPulseSettingCh1, East, { dutyPulseCaptureEnabled == 1 } ; | | |
2069 | - ; | | |
2070 | - dialog = digitalInputPort3, "Digital Input Port3", border ; | | |
2071 | - panel = digitalInputPort3select, West ; | | |
2072 | - field = "" ; | | |
2073 | - panel = captDutyPulseSettingCh2, East, { dutyPulseCaptureEnabled2 == 1 } ; | | |
2074 | - ; | | |
2075 | - dialog = inputPortSetting, "Input Port Setting", yAxis ; | | |
2076 | - panel = analogInputPort1 ; | | |
2077 | - panel = analogInputPort2 ; V [PJC v1.03] | |
2078 | - panel = digitalInputPort1 ;[PJSC v1.01] | |
2079 | -;[PJSCv1.01] panel = digitalInputPort2 ;[PJSC v1.01] | |
2080 | -;[PJSCv1.01] panel = digitalInputPort3 ;[PJSC v1.01] | |
2054 | +;[PJSC v1.10] dialog = inputPortSetting, "Input Port Setting", yAxis ; | | |
2055 | +;[PJSC v1.10] panel = analogInputPort1 ; | | |
2056 | +;[PJSC v1.10] panel = analogInputPort2 ; V [PJC v1.03] | |
2057 | +;[PJSC v1.10] panel = digitalInputPort2 ;[PJSC v1.01] | |
2058 | +;[PJSC v1.10] panel = digitalInputPort3 ;[PJSC v1.01] | |
2081 | 2059 | |
2060 | + dialog = inputPortSetting, "Input Port Setting" ;[PJSC v1.10] | |
2061 | + field = "Analog Input Port1", analogInputPortSelect ; | | |
2062 | + field = "Analog Input Port2", analogInputPortSelect2 ; | | |
2063 | + field = "Digital Input Port1", exTrigModeSelect ; | | |
2064 | + field = "Digital Input Port2", dutyPulseCaptureEnabled ; V | |
2065 | + field = "Digital Input Port3", dutyPulseCaptureEnabled2 ;[PJSC v1.10] | |
2066 | + | |
2082 | 2067 | ; Flex fuel stuff |
2083 | 2068 | dialog = flexFuelSettings, "", yAxis |
2084 | 2069 | field = "Flex Fuel Sensor ", flexEnabled |
@@ -2468,8 +2453,9 @@ | ||
2468 | 2453 | field = "Secondary trigger edge", TrigEdgeSec, { (TrigPattern == 0 && TrigSpeed == 0) || TrigPattern == 2 || TrigPattern == 9 || TrigPattern == 12 } ;Missing tooth, dual wheel and Miata 9905 |
2469 | 2454 | field = "Missing Tooth Secondary type" trigPatternSec, { (TrigPattern == 0&& TrigSpeed == 0) } |
2470 | 2455 | field = "Trigger Filter", TrigFilter, { TrigPattern != 13 } |
2471 | - field = "Trigger Filter during cranking", crankingFilter, { TrigPattern != 13 } ;[PJSC v1.02] | |
2456 | + field = "Trigger Filter during cranking", crankingFilter, { TrigPattern != 13 } ;[PJSC v1.02] | |
2472 | 2457 | field = "Re-sync every cycle", useResync, { TrigPattern == 2 || TrigPattern == 4 || TrigPattern == 7 || TrigPattern == 12 || TrigPattern == 9 || TrigPattern == 13 } ;Dual wheel, 4G63, Audi 135, Nissan 360, Miata 99-05 |
2458 | + field = "Crank angle calculation method", fixCrankAngleCalcMethod, { TrigPattern == 18 } ;[PJSC v1.10] For KATANA | |
2473 | 2459 | #endif ;[PJSC v1.02] For simple menu |
2474 | 2460 | |
2475 | 2461 | #if table4_spark ;[PJSC v1.01] For switching table4 |
@@ -156,7 +156,9 @@ | ||
156 | 156 | uint16_t getRPM_KATANA(); //[PJSC ver1.02] For supporting KATANA trigger |
157 | 157 | int getCrankAngle_KATANA(); //[PJSC ver1.02] For supporting KATANA trigger |
158 | 158 | void triggerSetEndTeeth_KATANA(); //[PJSC ver1.02] For supporting KATANA trigger |
159 | +int STATIC_ANGLE_KATANA = 96; //[PJSC ver1.10] | |
159 | 160 | |
161 | + | |
160 | 162 | void triggerSetup_KATANA2(); //[PJSC ver1.02] For supporting KATANA trigger |
161 | 163 | void triggerPri_KATANA2(); //[PJSC ver1.02] For supporting KATANA trigger |
162 | 164 | void triggerSec_KATANA2(); //[PJSC ver1.02] For supporting KATANA trigger |
@@ -169,6 +171,7 @@ | ||
169 | 171 | void captureDutyPulseOFFtime(); //[PJSC] For capturing duty pulse |
170 | 172 | void captureDutyPulseONtime2(); //[PJSC] For capturing duty pulse |
171 | 173 | void captureDutyPulseOFFtime2(); //[PJSC] For capturing duty pulse |
174 | +int captureExTriggerCount; //[PJSC v1.10] | |
172 | 175 | |
173 | 176 | unsigned long MAX_STALL_TIME = 500000UL; //The maximum time (in uS) that the system will continue to function before the engine is considered stalled/stopped. This is unique to each decoder, depending on the number of teeth etc. 500000 (half a second) is used as the default value, most decoders will be much less. |
174 | 177 |
@@ -180,6 +183,7 @@ | ||
180 | 183 | volatile unsigned long targetGap; |
181 | 184 | volatile unsigned long compositeLastToothTime; |
182 | 185 | volatile unsigned long flipGap; //[PJSC v1.02] |
186 | +volatile unsigned long nextGap; //[PJSC v1.10] | |
183 | 187 | |
184 | 188 | volatile int toothCurrentCount = 0; //The current number of teeth (Onec sync has been achieved, this can never actually be 0 |
185 | 189 | volatile byte toothSystemCount = 0; //Used for decoders such as Audi 135 where not every tooth is used for calculating crank angle. This variable stores the actual number of teeth, not the number being used to calculate crank angle |
@@ -395,8 +395,8 @@ | ||
395 | 395 | int CRANK_ANGLE_MAX = 720; |
396 | 396 | int CRANK_ANGLE_MAX_IGN = 360; |
397 | 397 | int CRANK_ANGLE_MAX_INJ = 360; //The number of crank degrees that the system track over. 360 for wasted / timed batch and 720 for sequential |
398 | - | |
399 | 398 | |
399 | + | |
400 | 400 | //This needs to be here because using the config page directly can prevent burning the setting |
401 | 401 | byte resetControl = RESET_CONTROL_DISABLED; |
402 | 402 |
@@ -653,84 +653,75 @@ | ||
653 | 653 | byte fanUnused : 7; |
654 | 654 | |
655 | 655 | //[PJSC] byte unused1_70[57]; |
656 | - byte pjscFreq; //[PJSC] Offset 71 | |
657 | - byte exValvePosMin; // | | |
658 | - byte exValvePosMax; // | | |
659 | - byte exTrigHysteresis; // | | |
660 | - byte squirtDeviceType : 1; // | | |
661 | - byte multiVEmapEnabled: 1; // | | |
662 | - byte mapSeparationEnabled: 1; // | | |
663 | - byte mapSwitchingEnabled: 1; // | | |
664 | - byte dualFuelEnabled: 1; // | | |
665 | - byte secondaryFuelUsage: 1; // | | |
666 | -//[PJSC v1.03] byte fuelCorrectionEnabled: 1; // |[PJSC v1.01] | |
667 | -//[PJSC v1.03] byte unused2_75: 1; // | | |
668 | - byte swBatVCorrection: 1; // |[PJSC v1.03] | |
669 | - byte vvtSamplingRate: 1; // |[PJSC v1.03] | |
670 | - byte exTrigModeSelect : 2; // | For External Trigger | |
671 | - byte externalTrigEdge: 1; // | 0: Rising, 1: Falling | |
672 | -//[PJSC v1.02] byte exValveCaptureEnabled: 1; // | For capturing Exhaust valve position | |
673 | - byte exValveCalibrationMode: 1; // | For support Exhaust Valve calibrationmode | |
674 | -//[PJSC v1.02] byte unused2_76: 3; // | | |
675 | - byte analogInputPortSelection: 2; // |[PJSC v1.02] For Analog input port selection | |
676 | - byte analogInputPortSelection2: 2; // |[PJSC v1.03] | |
677 | - byte dutyPulseCaptureEnabled: 1; // | For capturing duty pulse ch1 | |
678 | - byte dutyPulseCaptureEnabled2: 1; // | For capturing duty pulse ch2 | |
679 | - byte dutyPulseOnLevel: 1; // | For capturing duty pulse ch1, 0: high, 1: low | |
680 | - byte dutyPulseOnLevel2: 1; // | For capturing duty pulse ch2, 0: high, 1: low | |
681 | -//[PJSC v1.03] byte unused2_77: 4; // V | |
682 | - byte swIATcorrection: 1; //[PJSCv1.03] | |
683 | - byte swTAE: 1; // | | |
684 | - byte swWUE: 1; // V | |
685 | - byte swCrankingEnrichment: 1; //[PJSCv1.03] | |
686 | - byte veMapSelectionInj1Pri: 4; //[PJSCv1.01] For x4 Fuel table support | |
687 | - byte veMapSelectionInj1Sec: 4; //[PJSCv1.01] | | |
688 | - byte veMapSelectionInj2Pri: 4; //[PJSCv1.01] | | |
689 | - byte veMapSelectionInj2Sec: 4; //[PJSCv1.01] | | |
690 | - byte veMapSelectionInj3Pri: 4; //[PJSCv1.01] | | |
691 | - byte veMapSelectionInj3Sec: 4; //[PJSCv1.01] | | |
692 | - byte veMapSelectionInj4Pri: 4; //[PJSCv1.01] | | |
693 | - byte veMapSelectionInj4Sec: 4; //[PJSCv1.01] | | |
694 | - byte veMapSelectionInj1_2Pri: 4; //[PJSCv1.01] | | |
695 | - byte veMapSelectionInj1_2Sec: 4; //[PJSCv1.01] | | |
696 | - byte veMapSelectionInj2_2Pri: 4; //[PJSCv1.01] | | |
697 | - byte veMapSelectionInj2_2Sec: 4; //[PJSCv1.01] | | |
698 | - byte veMapSelectionInj3_2Pri: 4; //[PJSCv1.01] | | |
699 | - byte veMapSelectionInj3_2Sec: 4; //[PJSCv1.01] | | |
700 | - byte veMapSelectionInj4_2Pri: 4; //[PJSCv1.01] V | |
701 | - byte veMapSelectionInj4_2Sec: 4; //[PJSCv1.01] For x4 Fuel table support | |
702 | -//[PJSC v1.01] byte dutyFreqTst[4]; //[PJSC v1.01] For test mode | |
703 | -//[PJSC v1.01] byte dutyRatioTst[4]; // | | |
704 | - byte dutyFreqTst[12]; //[PJSC v1.01] For test mode | |
705 | - byte dutyRatioTst[12]; // | | |
706 | - byte testop_fp: 1; // | | |
707 | - byte testop_inj: 2; // | | |
708 | - byte testop_coil: 2; // | | |
709 | - byte testsel_inj: 2; // | | |
710 | - byte testsel_coil: 1; // | | |
711 | - uint16_t testint; // | | |
712 | - uint16_t testpw; // | | |
713 | - uint16_t testinjcnt; // | | |
714 | - byte muxout1Selection: 4; // | MUX output1 selection | |
715 | - byte muxout2Selection: 4; // | MUX output2 selection | |
716 | - byte muxout3Selection: 4; // |[PJSC v1.01] MUX output3 selection | |
717 | - byte muxout4Selection: 4; // |[PJSC v1.01] MUX output4 selection | |
718 | - byte fuelAlgorithm2: 3; // |[PJSC v1.01] For Secondary Fuel Algorithm | |
719 | - byte fuelAlgorithm3: 3; // | | |
720 | -//[PJSC v1.03] byte unused2_118: 2; // | | |
721 | - byte swASE: 1; // |[PJSC v1.03] | |
722 | - byte unused2_118: 1; // |[PJSC v1.03] | |
723 | - byte table4Usage: 1; // | For switching usage of 3rd table Ignition/Fuel | |
724 | - byte unused2_119: 7; // | | |
725 | - byte inj1SquirtStartEnd: 1; // | | |
726 | - byte inj2SquirtStartEnd: 1; // | | |
727 | - byte inj3SquirtStartEnd: 1; // V | |
728 | - byte inj4SquirtStartEnd: 1; //[PJSC v1.01] | |
729 | - byte afr_sensor_selection1: 1; //[PJSC v1.02] | |
730 | - byte afr_sensor_selection2: 1; //[PJSC v1.02] | |
731 | - byte afr_sensor_selection3: 1; //[PJSC v1.02] | |
732 | - byte afr_sensor_selection4: 1; //[PJSC v1.02] | |
733 | -//[PJSC v1.03] byte unused2_122[6]; //[PJSC v1.01] | |
656 | + byte pjscFreq; //[PJSC] Offset 71 | |
657 | + byte exValvePosMin; // | | |
658 | + byte exValvePosMax; // | | |
659 | + byte exTrigHysteresis; // | | |
660 | + byte squirtDeviceType : 1; // | | |
661 | + byte multiVEmapEnabled: 1; // | | |
662 | + byte mapSeparationEnabled: 1; // | | |
663 | + byte mapSwitchingEnabled: 1; // | | |
664 | + byte dualFuelEnabled: 1; // | | |
665 | + byte secondaryFuelUsage: 1; // | | |
666 | + byte swBatVCorrection: 1; // |[PJSC v1.03] | |
667 | + byte vvtSamplingRate: 1; // |[PJSC v1.03] | |
668 | + byte exTrigModeSelect : 2; // | For External Trigger | |
669 | + byte externalTrigEdge: 1; // | 0: Rising, 1: Falling | |
670 | + byte exValveCalibrationMode: 1; // | For support Exhaust Valve calibrationmode | |
671 | + byte analogInputPortSelection: 2; // |[PJSC v1.02] For Analog input port selection | |
672 | + byte analogInputPortSelection2: 2; // |[PJSC v1.03] | |
673 | + byte dutyPulseCaptureEnabled: 1; // | For capturing duty pulse ch1 | |
674 | + byte dutyPulseCaptureEnabled2: 1; // | For capturing duty pulse ch2 | |
675 | + byte dutyPulseOnLevel: 1; // | For capturing duty pulse ch1, 0: high, 1: low | |
676 | + byte dutyPulseOnLevel2: 1; // | For capturing duty pulse ch2, 0: high, 1: low | |
677 | + byte swIATcorrection: 1; //[PJSCv1.03] | |
678 | + byte swTAE: 1; // | | |
679 | + byte swWUE: 1; // V | |
680 | + byte swCrankingEnrichment: 1; //[PJSCv1.03] | |
681 | + byte veMapSelectionInj1Pri: 4; //[PJSCv1.01] For x4 Fuel table support | |
682 | + byte veMapSelectionInj1Sec: 4; //[PJSCv1.01] | | |
683 | + byte veMapSelectionInj2Pri: 4; //[PJSCv1.01] | | |
684 | + byte veMapSelectionInj2Sec: 4; //[PJSCv1.01] | | |
685 | + byte veMapSelectionInj3Pri: 4; //[PJSCv1.01] | | |
686 | + byte veMapSelectionInj3Sec: 4; //[PJSCv1.01] | | |
687 | + byte veMapSelectionInj4Pri: 4; //[PJSCv1.01] | | |
688 | + byte veMapSelectionInj4Sec: 4; //[PJSCv1.01] | | |
689 | + byte veMapSelectionInj1_2Pri: 4; //[PJSCv1.01] | | |
690 | + byte veMapSelectionInj1_2Sec: 4; //[PJSCv1.01] | | |
691 | + byte veMapSelectionInj2_2Pri: 4; //[PJSCv1.01] | | |
692 | + byte veMapSelectionInj2_2Sec: 4; //[PJSCv1.01] | | |
693 | + byte veMapSelectionInj3_2Pri: 4; //[PJSCv1.01] | | |
694 | + byte veMapSelectionInj3_2Sec: 4; //[PJSCv1.01] | | |
695 | + byte veMapSelectionInj4_2Pri: 4; //[PJSCv1.01] V | |
696 | + byte veMapSelectionInj4_2Sec: 4; //[PJSCv1.01] For x4 Fuel table support | |
697 | + byte dutyFreqTst[12]; //[PJSC v1.01] For test mode | |
698 | + byte dutyRatioTst[12]; // | | |
699 | + byte testop_fp: 1; // | | |
700 | + byte testop_inj: 2; // | | |
701 | + byte testop_coil: 2; // | | |
702 | + byte testsel_inj: 2; // | | |
703 | + byte testsel_coil: 1; // | | |
704 | + uint16_t testint; // | | |
705 | + uint16_t testpw; // | | |
706 | + uint16_t testinjcnt; // | | |
707 | + byte muxout1Selection: 4; // | MUX output1 selection | |
708 | + byte muxout2Selection: 4; // | MUX output2 selection | |
709 | + byte muxout3Selection: 4; // |[PJSC v1.01] MUX output3 selection | |
710 | + byte muxout4Selection: 4; // |[PJSC v1.01] MUX output4 selection | |
711 | + byte fuelAlgorithm2: 3; // |[PJSC v1.01] For Secondary Fuel Algorithm | |
712 | + byte fuelAlgorithm3: 3; // | | |
713 | + byte swASE: 1; // |[PJSC v1.03] | |
714 | + byte fixCrankAngleCalcMethod: 1; // |[PJSC v1.10] | |
715 | + byte table4Usage: 1; // | For switching usage of 3rd table Ignition/Fuel | |
716 | + byte unused2_119: 7; // | | |
717 | + byte inj1SquirtStartEnd: 1; // | | |
718 | + byte inj2SquirtStartEnd: 1; // | | |
719 | + byte inj3SquirtStartEnd: 1; // V | |
720 | + byte inj4SquirtStartEnd: 1; //[PJSC v1.01] | |
721 | + byte afr_sensor_selection1: 1; //[PJSC v1.02] | |
722 | + byte afr_sensor_selection2: 1; //[PJSC v1.02] | |
723 | + byte afr_sensor_selection3: 1; //[PJSC v1.02] | |
724 | + byte afr_sensor_selection4: 1; //[PJSC v1.02] | |
734 | 725 | byte squirtDeviceTypeCh1 : 1; //[PJSC v1.03] |
735 | 726 | byte squirtDeviceTypeCh2 : 1; // | |
736 | 727 | byte squirtDeviceTypeCh3 : 1; // | |
@@ -822,7 +813,8 @@ | ||
822 | 813 | //[PJSC v1.02] byte unused2_82[39]; |
823 | 814 | byte crankingFilter : 1; //[PJSC v1.02] |
824 | 815 | byte unused2_82 : 7; //[PJSC v1.02] |
825 | - byte unused2_83[38]; //[PJSC v1.02] | |
816 | + byte caputuringInterval; //[PJSC v1.10] | |
817 | + byte unused2_84[37]; //[PJSC v1.10] | |
826 | 818 | |
827 | 819 | #if defined(CORE_AVR) |
828 | 820 | }; |