gear_detection does not work on small-can-board #5812

taking 'engine->periodicSlowCallback();' out of guards
only:small-can-board
This commit is contained in:
rusefillc 2023-12-17 21:55:17 -05:00 committed by Andrey
parent 8f5cb8e55a
commit 64d35a1307
3 changed files with 16 additions and 17 deletions

View File

@ -144,6 +144,10 @@ void Engine::periodicSlowCallback() {
for (int camIndex = 0;camIndex < CAMS_PER_BANK;camIndex++) {
triggerCentral.vvtTriggerConfiguration[camIndex].update();
}
getEngineState()->heaterControlEnabled = engineConfiguration->forceO2Heating || engine->rpmCalculator.isRunning();
enginePins.o2heater.setValue(getEngineState()->heaterControlEnabled);
enginePins.starterRelayDisable.setValue(Sensor::getOrZero(SensorType::Rpm) < engineConfiguration->cranking.rpm);
#endif // EFI_SHAFT_POSITION_INPUT
efiWatchdog();
@ -154,10 +158,6 @@ void Engine::periodicSlowCallback() {
updateVrThresholdPwm();
getEngineState()->heaterControlEnabled = engineConfiguration->forceO2Heating || engine->rpmCalculator.isRunning();
enginePins.o2heater.setValue(getEngineState()->heaterControlEnabled);
enginePins.starterRelayDisable.setValue(Sensor::getOrZero(SensorType::Rpm) < engineConfiguration->cranking.rpm);
updateGppwm();
engine->engineModules.apply_all([](auto & m) { m.onSlowCallback(); });

View File

@ -49,8 +49,6 @@ void GearDetector::initGearDetector() {
}
Register();
// temp nasty?
isInitialized = true;
}
void GearDetector::onConfigurationChange(engine_configuration_s const * /*previousConfig*/) {
@ -60,7 +58,7 @@ void GearDetector::onConfigurationChange(engine_configuration_s const * /*previo
void GearDetector::onSlowCallback() {
if (!isInitialized) {
initGearDetector();
// temp nasty isInitialized = true;
isInitialized = true;
}
float ratio = computeGearboxRatio();

View File

@ -186,7 +186,18 @@ static void doPeriodicSlowCallback() {
slowStartStopButtonCallback();
engine->rpmCalculator.onSlowCallback();
if (engine->rpmCalculator.isStopped()) {
resetAccel();
}
if (engine->versionForConfigurationListeners.isOld(engine->getGlobalConfigurationVersion())) {
updateAccelParameters();
}
#endif /* EFI_SHAFT_POSITION_INPUT */
engine->periodicSlowCallback();
#if EFI_SHAFT_POSITION_INPUT
if (engine->triggerCentral.directSelfStimulation || engine->rpmCalculator.isStopped()) {
/**
* rusEfi usually runs on hardware which halts execution while writing to internal flash, so we
@ -198,16 +209,6 @@ static void doPeriodicSlowCallback() {
writeToFlashIfPending();
#endif /* (EFI_STORAGE_INT_FLASH == TRUE) || (EFI_STORAGE_MFS == TRUE) */
}
if (engine->rpmCalculator.isStopped()) {
resetAccel();
}
if (engine->versionForConfigurationListeners.isOld(engine->getGlobalConfigurationVersion())) {
updateAccelParameters();
}
engine->periodicSlowCallback();
#else /* if EFI_SHAFT_POSITION_INPUT */
#if (EFI_STORAGE_INT_FLASH == TRUE) || (EFI_STORAGE_MFS == TRUE)
writeToFlashIfPending();