odd fire timing_offset_cylinder not accounted by injection #6095

flipping adjustment direction
This commit is contained in:
Andrey 2024-04-08 22:44:52 -04:00
parent 3441417b24
commit e18a3b5e64
3 changed files with 4 additions and 3 deletions

View File

@ -51,6 +51,7 @@ Release template (copy/paste this for new release):
### Breaking Changes
- wrong trigger naming for missing teeth #6258
- flipping timing_offset_cylinder direction #6095
## March 2024 "Day 740"

View File

@ -213,7 +213,7 @@ angle_t getCylinderIgnitionTrim(size_t cylinderNumber, int rpm, float ignitionLo
// Plus or minus any adjustment if this is an odd-fire engine
auto adjustment = engineConfiguration->timing_offset_cylinder[cylinderNumber];
return adjustment + interpolate3d(
return -adjustment + interpolate3d(
config->ignTrims[cylinderNumber].table,
config->ignTrimLoadBins, ignitionLoad,
config->ignTrimRpmBins, rpm

View File

@ -14,8 +14,8 @@ TEST(OddFireRunningMode, hd) {
// let's pretend to have a 32 degree V odd fire engine.
float cylinderOne = -19;
float cylinderTwo = 13;
engineConfiguration->timing_offset_cylinder[0] = -cylinderOne;
engineConfiguration->timing_offset_cylinder[1] = -cylinderTwo;
engineConfiguration->timing_offset_cylinder[0] = cylinderOne;
engineConfiguration->timing_offset_cylinder[1] = cylinderTwo;
angle_t timing = 1;
setTable(config->ignitionTable, timing); // run mode timing