auto-sync
This commit is contained in:
parent
109eb90523
commit
5923d057e2
|
@ -370,7 +370,21 @@ void setMiata1994_s(engine_configuration_s *engineConfiguration, board_configura
|
|||
boardConfiguration->injectionPins[2] = GPIOB_8; // injector #3
|
||||
boardConfiguration->injectionPins[3] = GPIOB_7; // injector #4
|
||||
|
||||
setFsio(engineConfiguration, 0, GPIOD_11, "coolant 80 >");
|
||||
// setFsio(engineConfiguration, 0, GPIOD_11, "coolant 80 >");
|
||||
boardConfiguration->idleSolenoidFrequency = 500;
|
||||
|
||||
engineConfiguration->acCutoffLowRpm = 400;
|
||||
engineConfiguration->acCutoffHighRpm = 4500;
|
||||
engineConfiguration->acIdleRpmBump = 200;
|
||||
|
||||
//engineConfiguration->idleMode != IM_AUTO;
|
||||
engineConfiguration->targetIdleRpm = 800;
|
||||
|
||||
engineConfiguration->fanOffTemperature = 90;
|
||||
engineConfiguration->fanOnTemperature = 95;
|
||||
|
||||
engineConfiguration->tpsMin = 86;
|
||||
engineConfiguration->tpsMax = 596;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -17,10 +17,12 @@
|
|||
#include "idle_controller.h"
|
||||
#include "efilib.h"
|
||||
#include "rpm_calculator.h"
|
||||
#include "tps.h"
|
||||
|
||||
static int lastGoodValue = DEFAULT_IDLE_DUTY;
|
||||
|
||||
EXTERN_ENGINE;
|
||||
EXTERN_ENGINE
|
||||
;
|
||||
|
||||
void idleInit(IdleValveState *idle DECLARE_ENGINE_PARAMETER_S) {
|
||||
idle->value = DEFAULT_IDLE_DUTY;
|
||||
|
@ -29,8 +31,8 @@ void idleInit(IdleValveState *idle DECLARE_ENGINE_PARAMETER_S) {
|
|||
}
|
||||
|
||||
void setIdleRpm(IdleValveState *idle, int targetRpm) {
|
||||
idle->targetRpmRangeLeft = (int)(targetRpm * 0.93);
|
||||
idle->targetRpmRangeRight = (int)(targetRpm * 1.07);
|
||||
idle->targetRpmRangeLeft = (int) (targetRpm * 0.93);
|
||||
idle->targetRpmRangeRight = (int) (targetRpm * 1.07);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -49,7 +51,12 @@ static int setNewValue(IdleValveState *idle, int currentRpm, int now, const char
|
|||
return newValue;
|
||||
}
|
||||
|
||||
static int changeValue(IdleValveState *idle, int currentRpm, int now, const char * msg, int delta) {
|
||||
static int changeValue(IdleValveState *idle, int currentRpm, int now, const char * msg, int delta DECLARE_ENGINE_PARAMETER_S) {
|
||||
if (getTPS(PASS_ENGINE_PARAMETER_F) > 5.0) {
|
||||
// We are not supposed to be in idle mode. Don't touch anything
|
||||
idleDebug("TPS Lockout, TPS=", getTPS(PASS_ENGINE_PARAMETER_F));
|
||||
return idle->value;
|
||||
}
|
||||
int newValue = idle->value + delta;
|
||||
return setNewValue(idle, currentRpm, now, msg, newValue);
|
||||
}
|
||||
|
@ -57,7 +64,7 @@ static int changeValue(IdleValveState *idle, int currentRpm, int now, const char
|
|||
/**
|
||||
* now - current time in seconds
|
||||
*/
|
||||
int getIdle(IdleValveState *idle, int currentRpm, int now) {
|
||||
int getIdle(IdleValveState *idle, int currentRpm, int now DECLARE_ENGINE_PARAMETER_S) {
|
||||
if (currentRpm == 0 || isCranking()) {
|
||||
return setNewValue(idle, currentRpm, now, "cranking value: ", DEFAULT_IDLE_DUTY);
|
||||
}
|
||||
|
@ -79,10 +86,10 @@ int getIdle(IdleValveState *idle, int currentRpm, int now) {
|
|||
}
|
||||
|
||||
if (currentRpm >= idle->targetRpmRangeRight + 100)
|
||||
return changeValue(idle, currentRpm, now, "idle control: rpm is too high: ", -IDLE_DECREASE_STEP);
|
||||
return changeValue(idle, currentRpm, now, "idle control: rpm is too high: ", -IDLE_DECREASE_STEP PASS_ENGINE_PARAMETER);
|
||||
|
||||
if (currentRpm >= idle->targetRpmRangeRight)
|
||||
return changeValue(idle, currentRpm, now, "idle control: rpm is a bit too high: ", -1);
|
||||
return changeValue(idle, currentRpm, now, "idle control: rpm is a bit too high: ", -1 PASS_ENGINE_PARAMETER);
|
||||
|
||||
// we are here if RPM is low, let's see how low
|
||||
// if (currentRpm < 0.7 * idle->targetRpmRangeLeft) {
|
||||
|
@ -90,7 +97,7 @@ int getIdle(IdleValveState *idle, int currentRpm, int now) {
|
|||
// return setNewValue(idle, currentRpm, now, "RPMs are seriously low: ", 15 * IDLE_INCREASE_STEP);
|
||||
// } else
|
||||
if (currentRpm < idle->targetRpmRangeLeft - 100) {
|
||||
return changeValue(idle, currentRpm, now, "idle control: RPMs are low: ", IDLE_INCREASE_STEP);
|
||||
return changeValue(idle, currentRpm, now, "idle control: RPMs are low: ", IDLE_INCREASE_STEP PASS_ENGINE_PARAMETER);
|
||||
}
|
||||
return changeValue(idle, currentRpm, now, "idle control: RPMs are a bit low: ", 1);
|
||||
return changeValue(idle, currentRpm, now, "idle control: RPMs are a bit low: ", 1 PASS_ENGINE_PARAMETER);
|
||||
}
|
||||
|
|
|
@ -32,7 +32,7 @@ public:
|
|||
};
|
||||
|
||||
void idleInit(IdleValveState *idle DECLARE_ENGINE_PARAMETER_S);
|
||||
int getIdle(IdleValveState *idle, int currentRpm, int time);
|
||||
int getIdle(IdleValveState *idle, int currentRpm, int time DECLARE_ENGINE_PARAMETER_S);
|
||||
void setIdleRpm(IdleValveState *idle, int targetRpm);
|
||||
|
||||
void idleDebug(const char *msg, int value);
|
||||
|
|
|
@ -102,7 +102,7 @@ static msg_t ivThread(int param) {
|
|||
|
||||
int nowSec = getTimeNowSeconds();
|
||||
|
||||
int newValue = getIdle(&idle, getRpm(), nowSec);
|
||||
int newValue = getIdle(&idle, getRpm(), nowSec PASS_ENGINE_PARAMETER);
|
||||
|
||||
if (currentIdleValve != newValue) {
|
||||
currentIdleValve = newValue;
|
||||
|
|
Loading…
Reference in New Issue