rusEFI
The most advanced open source ECU
Functions
default_cranking.cpp File Reference

Functions

void setDefaultCranking ()
 

Function Documentation

◆ setDefaultCranking()

void setDefaultCranking ( )

Definition at line 6 of file default_cranking.cpp.

6  {
8 
9  // Fuel
10  engineConfiguration->crankingInjectionMode = IM_SIMULTANEOUS;
12 
13  // Ignition
14  engineConfiguration->ignitionDwellForCrankingMs = DEFAULT_CRANKING_DWELL_MS;
15  engineConfiguration->crankingTimingAngle = DEFAULT_CRANKING_ANGLE;
16 
17  // IAC
19  // should be 100 once tune is better
21 
23 
24  // After start enrichment
25 #if !EFI_UNIT_TEST
26  // don't set this for unit tests, as it makes things more complicated to test
27  static const float defaultPostCrankingCLTBins[] = {
28  -20.0f, 0.0f, 20.0f, 40.0f, 60.0f, 80.0f
29  };
30  static const uint16_t defaultPostCrankinDurationBins[] = {
31  0, 15, 35, 65, 100, 150
32  };
33  copyArray(engineConfiguration->postCrankingCLTBins, defaultPostCrankingCLTBins);
34  copyArray(engineConfiguration->postCrankingDurationBins, defaultPostCrankinDurationBins);
36 #endif
37 
38  setLinearCurve(config->crankingTpsCoef, /*from*/1, /*to*/1, 1);
40 
41  setLinearCurve(config->cltCrankingCorrBins, CLT_CURVE_RANGE_FROM, 100, 1);
42  setLinearCurve(config->cltCrankingCorr, 1.0, 1.0, 1);
43 
44  // Cranking temperature compensation
45  static const float crankingCoef[] = {
46  2.8,
47  2.2,
48  1.8,
49  1.55,
50  1.3,
51  1.1,
52  1.0,
53  1.0
54  };
55  copyArray(config->crankingFuelCoef, crankingCoef);
56  copyArray(config->crankingFuelCoefE100, crankingCoef);
57 
58  // Deg C
59  static const float crankingBins[] = {
60  -20,
61  -10,
62  5,
63  20,
64  35,
65  50,
66  65,
67  90
68  };
69  copyArray(config->crankingFuelBins, crankingBins);
70 
71  // Cranking cycle compensation
72 
73  // Whole table is 1.0, except first two values are steeper
75  config->crankingCycleCoef[0] = 2.0f;
76  config->crankingCycleCoef[1] = 1.3f;
77 
78  // X values are simply counting up cycle number starting at 1
79  for (size_t i = 0; i < efi::size(config->crankingCycleBins); i++) {
80  config->crankingCycleBins[i] = i + 1;
81  }
82 
83  // Cranking ignition timing
85 
86  static const float advanceBins[] = { 0, 200, 400, 1000 };
87  copyArray(config->crankingAdvanceBins, advanceBins);
88 
90 }
persistent_config_s * config
engine_configuration_s * engineConfiguration
float postCrankingFactor[CRANKING_ENRICH_COUNT][CRANKING_ENRICH_COUNT]
scaled_channel< int16_t, 100, 1 > crankingAdvance[CRANKING_ADVANCE_CURVE_SIZE]
scaled_channel< uint16_t, 100, 1 > crankingFuelCoefE100[CRANKING_CURVE_SIZE]
uint16_t crankingAdvanceBins[CRANKING_ADVANCE_CURVE_SIZE]
constexpr void setTable(TElement(&dest)[N][M], const VElement value)
Definition: table_helper.h:158
void setLinearCurve(TValue(&array)[TSize], float from, float to, float precision=0.01f)
Definition: table_helper.h:139
void setArrayValues(TValue(&array)[TSize], float value)
Definition: table_helper.h:151
composite packet size

Referenced by setDefaultEngineConfiguration().

Here is the call graph for this function:
Here is the caller graph for this function:

Go to the source code of this file.