steps towards #975
This commit is contained in:
parent
d9401fbdbc
commit
627f73502b
|
@ -530,21 +530,26 @@ bool isIdleHardwareRestartNeeded() {
|
|||
return isConfigurationChanged(stepperEnablePin) ||
|
||||
isConfigurationChanged(stepperEnablePinMode) ||
|
||||
isConfigurationChanged(bc.idle.stepperStepPin) ||
|
||||
isConfigurationChanged(bc.idle.stepperStepPin) ||
|
||||
isConfigurationChanged(bc.idle.solenoidFrequency) ||
|
||||
// isConfigurationChanged() ||
|
||||
// isConfigurationChanged() ||
|
||||
// isConfigurationChanged() ||
|
||||
isConfigurationChanged(bc.idle.solenoidFrequency) ||
|
||||
isConfigurationChanged(bc.useStepperIdle) ||
|
||||
// isConfigurationChanged() ||
|
||||
isConfigurationChanged(bc.useETBforIdleControl) ||
|
||||
isConfigurationChanged(bc.idle.solenoidPin);
|
||||
|
||||
}
|
||||
|
||||
static void stopIdleHardware(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
|
||||
void stopIdleHardware(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
|
||||
brain_pin_markUnused(activeConfiguration.stepperEnablePin);
|
||||
brain_pin_markUnused(activeConfiguration.bc.idle.stepperStepPin);
|
||||
brain_pin_markUnused(activeConfiguration.bc.idle.solenoidPin);
|
||||
// brain_pin_markUnused(activeConfiguration.bc.idle.);
|
||||
// brain_pin_markUnused(activeConfiguration.bc.idle.);
|
||||
// brain_pin_markUnused(activeConfiguration.bc.idle.);
|
||||
// brain_pin_markUnused(activeConfiguration.bc.idle.);
|
||||
|
||||
}
|
||||
|
||||
static void initIdleHardware(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
|
||||
void initIdleHardware(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
|
||||
if (CONFIGB(useStepperIdle)) {
|
||||
iacMotor.initialize(CONFIGB(idle).stepperStepPin,
|
||||
CONFIGB(idle).stepperDirectionPin,
|
||||
|
@ -555,7 +560,7 @@ static void initIdleHardware(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
|
|||
logger);
|
||||
// This greatly improves PID accuracy for steppers with a small number of steps
|
||||
idlePositionSensitivityThreshold = 1.0f / engineConfiguration->idleStepperTotalSteps;
|
||||
} else {
|
||||
} else if (!engineConfiguration->bc.useETBforIdleControl) {
|
||||
/**
|
||||
* Start PWM for idleValvePin
|
||||
*/
|
||||
|
@ -576,10 +581,6 @@ void startIdleThread(Logging*sharedLogger DECLARE_ENGINE_PARAMETER_SUFFIX) {
|
|||
|
||||
idlePid.initPidClass(&engineConfiguration->idleRpmPid);
|
||||
|
||||
#if ! EFI_UNIT_TEST
|
||||
// todo: re-initialize idle pins on the fly
|
||||
initIdleHardware(PASS_ENGINE_PARAMETER_SIGNATURE);
|
||||
#endif /* EFI_UNIT_TEST */
|
||||
|
||||
DISPLAY_STATE(Engine)
|
||||
DISPLAY_TEXT(Idle_State);
|
||||
|
|
|
@ -3,11 +3,10 @@
|
|||
* @brief Idle Valve Control thread
|
||||
*
|
||||
* @date May 23, 2013
|
||||
* @author Andrey Belomutskiy, (c) 2012-2017
|
||||
* @author Andrey Belomutskiy, (c) 2012-2019
|
||||
*/
|
||||
|
||||
#ifndef IDLE_THREAD_H_
|
||||
#define IDLE_THREAD_H_
|
||||
#pragma once
|
||||
|
||||
#include "engine.h"
|
||||
#include "periodic_task.h"
|
||||
|
@ -33,6 +32,8 @@ void setIdleDFactor(float value);
|
|||
void setIdleMode(idle_mode_e value);
|
||||
void setTargetIdleRpm(int value);
|
||||
void setIdleDT(int value);
|
||||
void stopIdleHardware(DECLARE_ENGINE_PARAMETER_SIGNATURE);
|
||||
void initIdleHardware(DECLARE_ENGINE_PARAMETER_SIGNATURE);
|
||||
bool isIdleHardwareRestartNeeded();
|
||||
void onConfigurationChangeIdleCallback(engine_configuration_s *previousConfiguration);
|
||||
|
||||
#endif /* IDLE_THREAD_H_ */
|
||||
|
|
|
@ -837,6 +837,6 @@ int getRusEfiVersion(void) {
|
|||
if (initBootloader() != 0)
|
||||
return 123;
|
||||
#endif /* EFI_BOOTLOADER_INCLUDE_CODE */
|
||||
return 20191016;
|
||||
return 20191018;
|
||||
}
|
||||
#endif /* EFI_UNIT_TEST */
|
||||
|
|
|
@ -33,6 +33,7 @@
|
|||
|
||||
#include "AdcConfiguration.h"
|
||||
#include "electronic_throttle.h"
|
||||
#include "idle_thread.h"
|
||||
#include "mcp3208.h"
|
||||
#include "hip9011.h"
|
||||
#include "histogram.h"
|
||||
|
@ -274,6 +275,7 @@ void applyNewHardwareSettings(void) {
|
|||
stopTriggerInputPins();
|
||||
#endif /* EFI_SHAFT_POSITION_INPUT */
|
||||
|
||||
|
||||
#if (HAL_USE_PAL && EFI_JOYSTICK)
|
||||
stopJoystickPins();
|
||||
#endif /* HAL_USE_PAL && EFI_JOYSTICK */
|
||||
|
@ -288,6 +290,13 @@ void applyNewHardwareSettings(void) {
|
|||
stopHip9001_pins();
|
||||
#endif /* EFI_HIP_9011 */
|
||||
|
||||
#if EFI_IDLE_CONTROL
|
||||
bool isIdleRestartNeeded = isIdleHardwareRestartNeeded();
|
||||
if (isIdleRestartNeeded) {
|
||||
// todostopIdleHardware();
|
||||
}
|
||||
#endif
|
||||
|
||||
#if EFI_ELECTRONIC_THROTTLE_BODY
|
||||
bool etbRestartNeeded = isETBRestartNeeded();
|
||||
if (etbRestartNeeded) {
|
||||
|
@ -348,6 +357,12 @@ void applyNewHardwareSettings(void) {
|
|||
#endif /* EFI_HIP_9011 */
|
||||
|
||||
|
||||
#if EFI_IDLE_CONTROL
|
||||
// if (isIdleRestartNeeded) {
|
||||
initIdleHardware();
|
||||
// }
|
||||
#endif
|
||||
|
||||
#if EFI_ELECTRONIC_THROTTLE_BODY
|
||||
if (etbRestartNeeded) {
|
||||
startETBPins(PASS_ENGINE_PARAMETER_SIGNATURE);
|
||||
|
|
Loading…
Reference in New Issue