Skip to content

Commit d03f158

Browse files
committed
Add VSS threshold for Ign.tim.idling regulator
1 parent 623d4ab commit d03f158

File tree

3 files changed

+13
-5
lines changed

3 files changed

+13
-5
lines changed

sources/funconv.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -426,6 +426,11 @@ int16_t idling_pregulator(s_timer16_t* io_timer)
426426
int16_t error,factor,idling_rpm;
427427
#define IRUSDIV 1
428428

429+
#ifdef SPEED_SENSOR
430+
if ((PGM_GET_BYTE(&fw_data.exdata.use_vss_thrd_for_igntim_reg)) && IOCFG_CHECK(IOP_SPDSENS) && d.sens.vss_speed > PGM_GET_WORD(&fw_data.exdata.iac_onrunadd_vss_thrd))
431+
return 0;
432+
#endif
433+
429434
//If this idling regulator is turned off or RPM significally higher from normal idling RPM or engine is not heat up, then exit with zero value (zero correction)
430435
if (!CHECKBIT(d.param.idl_flags, IRF_USE_REGULATOR) || (d.sens.temperat < d.param.idlreg_turn_on_temp && CHECKBIT(d.param.tmp_flags, TMPF_CLT_USE)
431436
/*

sources/tables.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1326,6 +1326,8 @@ PGM_FIXED_ADDR_OBJ(fw_data_t fw_data, ".firmware_data") =
13261326

13271327
.map_samp_mode = 1, //MAP sampled on the certain angles of crankshaft
13281328

1329+
.use_vss_thrd_for_igntim_reg = 0, //don't turn off ign.tim. idling regulator when vehicle spped is above threshold
1330+
13291331
/**reserved bytes*/
13301332
{0}
13311333
},

sources/tables.h

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -685,12 +685,13 @@ typedef struct fw_ex_data_t
685685

686686
uint8_t map_samp_mode; //!< MAP sampling mode: 0 - regular sampling with other sensors (each 3.28ms); 1 - CKP-synchronous sampling
687687

688+
uint8_t use_vss_thrd_for_igntim_reg;
688689
//---------------------------------------------------------------
689690

690691
/**Following reserved bytes required for keeping binary compatibility between
691692
* different versions of firmware. Useful when you add/remove members to/from
692693
* this structure. */
693-
uint8_t reserved[1523];
694+
uint8_t reserved[1522];
694695
}fw_ex_data_t;
695696

696697
/**Describes a universal programmable output*/
@@ -1000,10 +1001,6 @@ typedef struct params_t
10001001
int16_t gps_curve_offset; //!< offset of curve in volts, can be negative
10011002
int16_t gps_curve_gradient; //!< gradient of curve in kPa/V, can be negative (inverse characteristic curve)
10021003

1003-
/**Following reserved bytes required for keeping binary compatibility between
1004-
* different versions of firmware. Useful when you add/remove members to/from
1005-
* this structure. */
1006-
10071004
uint8_t bt_type; //!< Bluetooth chip type: 0 - BC417, 1 - BK3231, 2 - BK3231S (JDY-31), 3 - BC352(HC-05), 4 - BK3432, 5 - BK3431S
10081005

10091006
int16_t idl_reg_d; //!< differencial factor for IAC PID (value * 256, max 5.0)
@@ -1026,6 +1023,10 @@ typedef struct params_t
10261023
uint16_t ltft_learn_load[2]; //!< lower and upper thresholds of load for learning, value * 64
10271024
uint8_t ltft_dead_band[2]; //!< EGO correction thresholds (- and +) below which LTFT will not work, value * 512
10281025

1026+
/**Following reserved bytes required for keeping binary compatibility between
1027+
* different versions of firmware. Useful when you add/remove members to/from
1028+
* this structure. */
1029+
10291030
uint8_t reserved[91];
10301031

10311032
/**CRC of this structure (for checking correctness of data after loading from EEPROM) */

0 commit comments

Comments
 (0)