#571 I am not getting it
This commit is contained in:
parent
a0725457f4
commit
06f64484fb
|
@ -530,11 +530,15 @@ static bool isPrimeInjectionPulseSkipped(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
|
|||
* Prime injection pulse, mainly needed for mono-injectors or long intake manifolds.
|
||||
* See testStartOfCrankingPrimingPulse()
|
||||
*/
|
||||
static void startPrimeInjectionPulse(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
|
||||
#if EFI_PROD_CODE || defined(__DOXYGEN__)
|
||||
void startPrimeInjectionPulse(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
|
||||
// First, we need a protection against 'fake' ignition switch on and off (i.e. no engine started), to avoid repeated prime pulses.
|
||||
// So we check and update the ignition switch counter in non-volatile backup-RAM
|
||||
#if EFI_PROD_CODE || defined(__DOXYGEN__)
|
||||
uint32_t ignSwitchCounter = backupRamLoad(BACKUP_IGNITION_SWITCH_COUNTER);
|
||||
#else /* EFI_PROD_CODE */
|
||||
uint32_t ignSwitchCounter = 0;
|
||||
#endif /* EFI_PROD_CODE */
|
||||
|
||||
// if we're just toying with the ignition switch, give it another chance eventually...
|
||||
if (ignSwitchCounter > 10)
|
||||
ignSwitchCounter = 0;
|
||||
|
@ -547,7 +551,7 @@ static void startPrimeInjectionPulse(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
|
|||
// fill-in the prime event struct
|
||||
#if EFI_UNIT_TEST || defined(__DOXYGEN__)
|
||||
primeInjEvent.engine = engine;
|
||||
#endif
|
||||
#endif /* EFI_UNIT_TEST */
|
||||
primeInjEvent.ownIndex = 0;
|
||||
primeInjEvent.isSimultanious = true;
|
||||
|
||||
|
@ -563,6 +567,7 @@ static void startPrimeInjectionPulse(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
|
|||
scheduleForLater(sDown, turnOffDelayUs, (schfunc_t) &endSimultaniousInjectionOnlyTogglePins, engine);
|
||||
}
|
||||
}
|
||||
#if EFI_PROD_CODE || defined(__DOXYGEN__)
|
||||
// we'll reset it later when the engine starts
|
||||
backupRamSave(BACKUP_IGNITION_SWITCH_COUNTER, ignSwitchCounter + 1);
|
||||
#endif /* EFI_PROD_CODE */
|
||||
|
|
|
@ -19,6 +19,7 @@ void initMainEventListener(Logging *sharedLogger DECLARE_ENGINE_PARAMETER_SUFFIX
|
|||
void mainTriggerCallback(trigger_event_e ckpSignalType, uint32_t eventIndex DECLARE_ENGINE_PARAMETER_SUFFIX);
|
||||
|
||||
int isIgnitionTimingError(void);
|
||||
void startPrimeInjectionPulse(DECLARE_ENGINE_PARAMETER_SIGNATURE);
|
||||
|
||||
void showMainHistogram(void);
|
||||
|
||||
|
|
|
@ -34,8 +34,8 @@ void testPlainCrankingWithoutAdvancedFeatures() {
|
|||
// two simultaneous injections
|
||||
assertEqualsM("plain#2", 4, schedulingQueue.size());
|
||||
|
||||
// assertEvent("sim start", 0, (void*)startSimultaniousInjection, timeNowUs, 97975, engine);
|
||||
// assertEvent("sim end", 1, (void*)endSimultaniousInjection, timeNowUs, 100000, 3);
|
||||
assertEvent5("sim start", 0, (void*)startSimultaniousInjection, timeNowUs, 97975);
|
||||
assertEvent5("sim end", 1, (void*)endSimultaniousInjection, timeNowUs, 100000);
|
||||
}
|
||||
|
||||
|
||||
|
@ -49,5 +49,11 @@ void testStartOfCrankingPrimingPulse() {
|
|||
|
||||
setupSimpleTestEngineWithMafAndTT_ONE_trigger(ð);
|
||||
assertEqualsM("RPM=0", 0, engine->rpmCalculator.getRpm(PASS_ENGINE_PARAMETER_SIGNATURE));
|
||||
|
||||
// prod code invokes this on ECU start, here we have to mimic this behavior
|
||||
startPrimeInjectionPulse(PASS_ENGINE_PARAMETER_SIGNATURE);
|
||||
|
||||
|
||||
assertEqualsM("prime fuel", 0, schedulingQueue.size());
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue