instant RPM for idle control #925

This commit is contained in:
rusefi 2019-09-10 23:03:55 -04:00
parent 3f856dc54d
commit f56e2b3a46
4 changed files with 13 additions and 7 deletions

View File

@ -222,8 +222,13 @@ static percent_t automaticIdleController(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
efitick_t nowNt = getTimeNowNt();
// check if within the dead zone
//float rpm = engine->triggerCentral.triggerState.calculateInstantRpm(NULL, nowNt PASS_ENGINE_PARAMETER_SUFFIX);
float rpm = GET_RPM();
float rpm;
if (CONFIG(useInstantRpmForIdle)) {
rpm = engine->triggerCentral.triggerState.calculateInstantRpm(NULL, nowNt PASS_ENGINE_PARAMETER_SUFFIX);
} else {
rpm = GET_RPM();
}
if (absI(rpm - targetRpm) <= CONFIG(idlePidRpmDeadZone)) {
engine->engineState.idle.idleState = RPM_DEAD_ZONE;
// current RPM is close enough, no need to change anything

View File

@ -300,7 +300,7 @@ bit showSdCardWarning;
bit cj125isUrDivided;looks like 3v range should be enough, divider not needed
bit useTLE8888_hall_mode;
bit useTLE8888_cranking_hack;
bit issue_294_18;
bit useInstantRpmForIdle;
bit issue_294_19;
bit issue_294_21;
bit issue_294_22;

View File

@ -1931,6 +1931,7 @@ cmd_set_engine_type_default = "w\x00\x31\x00\x00"
dialog = idleSettings, "", yAxis
field = "Idle IAC control mode", idleMode
field = useInstantRpmForIdle, useInstantRpmForIdle
field = "use ETB for idle", useETBforIdleControl
field = "ETB Idle range", etbIdleThrottleRange, {useETBforIdleControl == 1}
field = "Use separate Ignition Table for idle", useSeparateAdvanceForIdle

View File

@ -1,6 +1,6 @@
package com.rusefi.config.generated;
// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on integration\rusefi_config.txt Tue Sep 10 22:45:42 EDT 2019
// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on integration\rusefi_config.txt Tue Sep 10 22:56:58 EDT 2019
// by class com.rusefi.output.FileJavaFieldsConsumer
import com.rusefi.config.*;
@ -837,7 +837,6 @@ public class Fields {
public static final int isManualSpinningMode_offset = 1476;
public static final int isMapAveragingEnabled_offset = 1476;
public static final int isSdCardEnabled_offset = 744;
public static final int issue_294_18_offset = 76;
public static final int issue_294_19_offset = 76;
public static final int issue_294_21_offset = 76;
public static final int issue_294_22_offset = 76;
@ -1245,6 +1244,7 @@ public class Fields {
public static final int useFSIO9ForServo2_offset = 1464;
public static final int useIacTableForCoasting_offset = 744;
public static final int useIdleTimingPidControl_offset = 744;
public static final int useInstantRpmForIdle_offset = 76;
public static final int useLcdScreen_offset = 744;
public static final int useLinearCltSensor_offset = 1464;
public static final int useLinearIatSensor_offset = 1464;
@ -1307,7 +1307,7 @@ public class Fields {
public static final Field CJ125ISURDIVIDED = Field.create("CJ125ISURDIVIDED", 76, FieldType.BIT, 15);
public static final Field USETLE8888_HALL_MODE = Field.create("USETLE8888_HALL_MODE", 76, FieldType.BIT, 16);
public static final Field USETLE8888_CRANKING_HACK = Field.create("USETLE8888_CRANKING_HACK", 76, FieldType.BIT, 17);
public static final Field ISSUE_294_18 = Field.create("ISSUE_294_18", 76, FieldType.BIT, 18);
public static final Field USEINSTANTRPMFORIDLE = Field.create("USEINSTANTRPMFORIDLE", 76, FieldType.BIT, 18);
public static final Field ISSUE_294_19 = Field.create("ISSUE_294_19", 76, FieldType.BIT, 19);
public static final Field ISSUE_294_21 = Field.create("ISSUE_294_21", 76, FieldType.BIT, 20);
public static final Field ISSUE_294_22 = Field.create("ISSUE_294_22", 76, FieldType.BIT, 21);
@ -2091,7 +2091,7 @@ public class Fields {
CJ125ISURDIVIDED,
USETLE8888_HALL_MODE,
USETLE8888_CRANKING_HACK,
ISSUE_294_18,
USEINSTANTRPMFORIDLE,
ISSUE_294_19,
ISSUE_294_21,
ISSUE_294_22,