Reducing code duplication

This commit is contained in:
rusefillc 2023-12-02 13:43:21 -05:00
parent 86164bf71e
commit 589246f19c
20 changed files with 33 additions and 266 deletions

View File

@ -38,19 +38,6 @@ static void setIgnitionPins() {
engineConfiguration->ignitionPins[3] = Gpio::Unassigned;
}
static void setupVbatt() {
// 4.7k high side/4.7k low side = 2.0 ratio divider
engineConfiguration->analogInputDividerCoefficient = 2.0f;
// set vbatt_divider 5.835
// 33k / 6.8k
engineConfiguration->vbattDividerCoeff = (33 + 6.8) / 6.8; // 5.835
engineConfiguration->vbattAdcChannel = H144_IN_VBATT;
engineConfiguration->adcVcc = 3.29f;
}
static void setupDefaultSensorInputs() {
// trigger inputs, hall
engineConfiguration->triggerInputPins[0] = Gpio::H144_IN_CRANK;
@ -96,7 +83,7 @@ static bool isMegaModuleRevision() {
}
void setBoardConfigOverrides() {
setupVbatt();
setHellenVbatt();
int16_t hellenBoardId = engine->engineState.hellenBoardId;
// rev.D uses SPI1 pins for CAN2, but rev.E and later uses mega-module meaning SPI1 for SD-card

View File

@ -61,19 +61,6 @@ static void setIgnitionPins() {
engineConfiguration->ignitionPins[3] = Gpio::H144_IGN_4;
}
static void setupVbatt() {
// 4.7k high side/4.7k low side = 2.0 ratio divider
engineConfiguration->analogInputDividerCoefficient = 2.0f;
// set vbatt_divider 5.835
// 33k / 6.8k
engineConfiguration->vbattDividerCoeff = (33 + 6.8) / 6.8; // 5.835
engineConfiguration->vbattAdcChannel = H144_IN_VBATT;
engineConfiguration->adcVcc = 3.29f;
}
static void setupDefaultSensorInputs() {
// trigger inputs, hall
engineConfiguration->triggerInputPins[0] = Gpio::H144_IN_CRANK;
@ -142,7 +129,7 @@ void boardOnConfigurationChange(engine_configuration_s * /*previousConfiguration
#include "hellen_leds_144.cpp"
void setBoardConfigOverrides() {
setupVbatt();
setHellenVbatt();
if (is_F_OrOlder()) {
setHellenEnPin(Gpio::H144_OUT_IO3);

View File

@ -66,19 +66,6 @@ static void setIgnitionPins() {
engineConfiguration->ignitionPins[3] = Gpio::H144_IGN_4;
}
static void setupVbatt() {
// 4.7k high side/4.7k low side = 2.0 ratio divider
engineConfiguration->analogInputDividerCoefficient = 2.0f;
// set vbatt_divider 5.835
// 33k / 6.8k
engineConfiguration->vbattDividerCoeff = (33 + 6.8) / 6.8; // 5.835
engineConfiguration->vbattAdcChannel = H144_IN_VBATT;
engineConfiguration->adcVcc = 3.29f;
}
static void setupDefaultSensorInputs() {
// trigger inputs, hall
engineConfiguration->triggerInputPins[0] = H144_USB1ID;
@ -138,7 +125,7 @@ void boardOnConfigurationChange(engine_configuration_s * /*previousConfiguration
#include "hellen_leds_144.cpp"
void setBoardConfigOverrides() {
setupVbatt();
setHellenVbatt();
setHellenSdCardSpi2();

View File

@ -67,19 +67,6 @@ static void setIgnitionPins() {
engineConfiguration->ignitionPins[3] = Gpio::MM176_IGN4;
}
static void setupVbatt() {
// 4.7k high side/4.7k low side = 2.0 ratio divider
engineConfiguration->analogInputDividerCoefficient = 2.0f;
// set vbatt_divider 5.835
// 33k / 6.8k
engineConfiguration->vbattDividerCoeff = (33 + 6.8) / 6.8; // 5.835
engineConfiguration->vbattAdcChannel = MM176_IN_VBATT;
engineConfiguration->adcVcc = 3.29f;
}
static void setupDefaultSensorInputs() {
// trigger inputs, hall
engineConfiguration->triggerInputPins[0] = Gpio::MM176_USB1ID;
@ -144,7 +131,7 @@ void boardOnConfigurationChange(engine_configuration_s * /*previousConfiguration
#include "hellen_leds_144.cpp"
void setBoardConfigOverrides() {
setupVbatt();
setHellenVbatt();
setHellenSdCardSpi1();

View File

@ -24,20 +24,6 @@ static void setIgnitionPins() {
engineConfiguration->ignitionPins[3] = Gpio::MM100_IGN4;
}
static void setupVbatt() {
// 4.7k high side/4.7k low side = 2.0 ratio divider
engineConfiguration->analogInputDividerCoefficient = 2.0f;
// set vbatt_divider 5.835
// 33k / 6.8k
engineConfiguration->vbattDividerCoeff = (33 + 6.8) / 6.8; // 5.835
// pin input +12 from Main Relay
engineConfiguration->vbattAdcChannel = MM100_IN_VBATT;
engineConfiguration->adcVcc = 3.29f;
}
static void setupDefaultSensorInputs() {
engineConfiguration->vehicleSpeedSensorInputPin = Gpio::MM100_IN_D2;
@ -61,7 +47,7 @@ static void setupDefaultSensorInputs() {
void setBoardConfigOverrides() {
// rev A needs EN pin but newer revisions would potentially not use it
setHellenMegaEnPin();
setupVbatt();
setHellenVbatt();
setHellenSdCardSpi1();
configureHellenMegaAccCS2Pin();

View File

@ -40,20 +40,6 @@ static void setIgnitionPins() {
engineConfiguration->ignitionPins[7] = Gpio::H144_IGN_8;
}
static void setupVbatt() {
// 4.7k high side/4.7k low side = 2.0 ratio divider
engineConfiguration->analogInputDividerCoefficient = 2.0f;
// set vbatt_divider 5.835
// 33k / 6.8k
engineConfiguration->vbattDividerCoeff = (33 + 6.8) / 6.8; // 5.835
// pin input +12 from Main Relay
engineConfiguration->vbattAdcChannel = EFI_ADC_5; // 4T
engineConfiguration->adcVcc = 3.29f;
}
static void setupDefaultSensorInputs() {
// trigger inputs, hall
engineConfiguration->triggerInputPins[0] = Gpio::H144_IN_SENS2;
@ -77,7 +63,7 @@ static void setupDefaultSensorInputs() {
#include "hellen_leds_144.cpp"
void setBoardConfigOverrides() {
setupVbatt();
setHellenVbatt();
setHellenSdCardSpi2();
setDefaultHellenAtPullUps();

View File

@ -25,20 +25,6 @@ static void setIgnitionPins() {
engineConfiguration->ignitionPins[3] = Gpio::H144_IGN_4;
}
static void setupVbatt() {
// 4.7k high side/4.7k low side = 2.0 ratio divider
engineConfiguration->analogInputDividerCoefficient = 2.0f;
// set vbatt_divider 5.835
// 33k / 6.8k
engineConfiguration->vbattDividerCoeff = (33 + 6.8) / 6.8; // 5.835
// pin input +12 from Main Relay
engineConfiguration->vbattAdcChannel = EFI_ADC_5; // 4T
engineConfiguration->adcVcc = 3.29f;
}
static void setupDefaultSensorInputs() {
engineConfiguration->vehicleSpeedSensorInputPin = Gpio::H144_IN_VSS;
@ -63,7 +49,7 @@ void onBoardStandBy() {
void setBoardConfigOverrides() {
setHellenMegaEnPin();
setupVbatt();
setHellenVbatt();
setHellenSdCardSpi1();
configureHellenMegaAccCS2Pin();

View File

@ -32,20 +32,6 @@ static void setIgnitionPins() {
engineConfiguration->ignitionPins[3] = Gpio::Unassigned;
}
static void setupVbatt() {
// 4.7k high side/4.7k low side = 2.0 ratio divider
engineConfiguration->analogInputDividerCoefficient = 2.0f;
// set vbatt_divider 5.835
// 33k / 6.8k
engineConfiguration->vbattDividerCoeff = (33 + 6.8) / 6.8; // 5.835
// pin input +12 from Main Relay
engineConfiguration->vbattAdcChannel = EFI_ADC_5; // 4T
engineConfiguration->adcVcc = 3.29f;
}
static void setupDefaultSensorInputs() {
// trigger inputs, hall
engineConfiguration->triggerInputPins[0] = Gpio::H144_IN_CRANK;
@ -67,7 +53,7 @@ static void setupDefaultSensorInputs() {
#include "hellen_leds_144.cpp"
void setBoardConfigOverrides() {
setupVbatt();
setHellenVbatt();
setHellenSdCardSpi2();

View File

@ -33,20 +33,6 @@ static void setIgnitionPins() {
engineConfiguration->ignitionPins[5] = Gpio::H144_IGN_6;
}
static void setupVbatt() {
// 4.7k high side/4.7k low side = 2.0 ratio divider
engineConfiguration->analogInputDividerCoefficient = 2.0f;
// set vbatt_divider 5.835
// 33k / 6.8k
engineConfiguration->vbattDividerCoeff = (33 + 6.8) / 6.8; // 5.835
// pin input +12 from Main Relay
engineConfiguration->vbattAdcChannel = EFI_ADC_5; // 4T
engineConfiguration->adcVcc = 3.29f;
}
static void setupDefaultSensorInputs() {
// trigger inputs
engineConfiguration->triggerInputPins[0] = Gpio::H144_IN_CRANK;
@ -71,7 +57,7 @@ static void setupDefaultSensorInputs() {
#include "hellen_leds_144.cpp"
void setBoardConfigOverrides() {
setupVbatt();
setHellenVbatt();
setHellenSdCardSpi3();
engineConfiguration->etbIo[0].directionPin1 = Gpio::H144_OUT_PWM7;

View File

@ -29,20 +29,6 @@ static void setIgnitionPins() {
engineConfiguration->ignitionPins[3] = Gpio::E3; // 94 - IGN_4
}
static void setupVbatt() {
// 4.7k high side/4.7k low side = 2.0 ratio divider
engineConfiguration->analogInputDividerCoefficient = 2.0f;
// set vbatt_divider 5.835
// 33k / 6.8k
engineConfiguration->vbattDividerCoeff = (33 + 6.8) / 6.8; // 5.835
// pin input +12 from Main Relay
engineConfiguration->vbattAdcChannel = EFI_ADC_5; // 4T
engineConfiguration->adcVcc = 3.29f;
}
static void setupDefaultSensorInputs() {
// trigger inputs
engineConfiguration->triggerInputPins[0] = Gpio::B1; // 82 - VR
@ -72,7 +58,7 @@ static void setupDefaultSensorInputs() {
#include "hellen_leds_176.cpp"
void setBoardConfigOverrides() {
setupVbatt();
setHellenVbatt();
setHellenSdCardSpi3();

View File

@ -39,20 +39,6 @@ static void setIgnitionPins() {
engineConfiguration->ignitionPins[7] = Gpio::I7;
}
static void setupVbatt() {
// 4.7k high side/4.7k low side = 2.0 ratio divider
engineConfiguration->analogInputDividerCoefficient = 2.0f;
// set vbatt_divider 5.835
// 33k / 6.8k
engineConfiguration->vbattDividerCoeff = (33 + 6.8) / 6.8; // 5.835
// pin input +12 from Main Relay
engineConfiguration->vbattAdcChannel = EFI_ADC_5; // 4T
engineConfiguration->adcVcc = 3.29f;
}
static void setupDefaultSensorInputs() {
// trigger inputs
engineConfiguration->triggerInputPins[0] = Gpio::B1;
@ -125,7 +111,7 @@ static void setHellen128ETBConfig() {
#include "hellen_leds_176.cpp"
void setBoardConfigOverrides() {
setupVbatt();
setHellenVbatt();
setHellenSdCardSpi2();

View File

@ -28,20 +28,6 @@ static void setIgnitionPins() {
engineConfiguration->ignitionPins[3] = Gpio::H144_IGN_4;
}
static void setupVbatt() {
// 4.7k high side/4.7k low side = 2.0 ratio divider
engineConfiguration->analogInputDividerCoefficient = 2.0f;
// set vbatt_divider 5.835
// 33k / 6.8k
engineConfiguration->vbattDividerCoeff = (33 + 6.8) / 6.8; // 5.835
// pin input +12 from Main Relay
engineConfiguration->vbattAdcChannel = EFI_ADC_5; // 4T
engineConfiguration->adcVcc = 3.29f;
}
static void setupDefaultSensorInputs() {
engineConfiguration->vvtMode[0] = VVT_SINGLE_TOOTH;
engineConfiguration->vvtMode[1] = VVT_SINGLE_TOOTH;
@ -66,7 +52,7 @@ static void setupDefaultSensorInputs() {
static bool isFirstInvocation = true;
void setBoardConfigOverrides() {
setupVbatt();
setHellenVbatt();
setHellenSdCardSpi2();

View File

@ -32,20 +32,6 @@ static void setIgnitionPins() {
engineConfiguration->ignitionPins[3] = Gpio::Unassigned; // Gpio::E3
}
static void setupVbatt() {
// 4.7k high side/4.7k low side = 2.0 ratio divider
engineConfiguration->analogInputDividerCoefficient = 2.0f;
// set vbatt_divider 5.835
// 33k / 6.8k
engineConfiguration->vbattDividerCoeff = (33 + 6.8) / 6.8; // 5.835
// pin input +12 from Main Relay
engineConfiguration->vbattAdcChannel = EFI_ADC_5; // 4T
engineConfiguration->adcVcc = 3.29f;
}
static void setupDefaultSensorInputs() {
// trigger inputs, hall
engineConfiguration->triggerInputPins[0] = Gpio::A6;
@ -67,7 +53,7 @@ static void setupDefaultSensorInputs() {
#include "hellen_leds_176.cpp"
void setBoardConfigOverrides() {
setupVbatt();
setHellenVbatt();
setHellenSdCardSpi2();

View File

@ -27,20 +27,6 @@ static void setIgnitionPins() {
engineConfiguration->ignitionPins[3] = Gpio::Unassigned; // Gpio::E3
}
static void setupVbatt() {
// 4.7k high side/4.7k low side = 2.0 ratio divider
engineConfiguration->analogInputDividerCoefficient = 2.0f;
// set vbatt_divider 5.835
// 33k / 6.8k
engineConfiguration->vbattDividerCoeff = (33 + 6.8) / 6.8; // 5.835
// pin input +12 from Main Relay
engineConfiguration->vbattAdcChannel = EFI_ADC_5; // 4T
engineConfiguration->adcVcc = 3.29f;
}
static void setupDefaultSensorInputs() {
// trigger inputs
engineConfiguration->triggerInputPins[0] = Gpio::B1;
@ -63,7 +49,7 @@ static void setupDefaultSensorInputs() {
#include "hellen_leds_176.cpp"
void setBoardConfigOverrides() {
setupVbatt();
setHellenVbatt();
if (engine->engineState.hellenBoardId == -1) {
// Rev a-d use SPI3 for SD card

View File

@ -39,20 +39,6 @@ Gpio getWarningLedPin() {
return Gpio::H11;
}
static void setupVbatt() {
// 4.7k high side/4.7k low side = 2.0 ratio divider
engineConfiguration->analogInputDividerCoefficient = 2.0f;
// set vbatt_divider 5.835
// 33k / 6.8k
engineConfiguration->vbattDividerCoeff = (33 + 6.8) / 6.8; // 5.835
// pin input +12 from Main Relay
engineConfiguration->vbattAdcChannel = EFI_ADC_5;
engineConfiguration->adcVcc = 3.29f;
}
static void setupDefaultSensorInputs() {
// trigger inputs
engineConfiguration->triggerInputPins[0] = Gpio::B1;
@ -73,7 +59,7 @@ static void setupDefaultSensorInputs() {
}
void setBoardConfigOverrides() {
setupVbatt();
setHellenVbatt();
// Hellen81a uses SPI2 for SD-card
#if 1

View File

@ -30,20 +30,6 @@ static void setIgnitionPins() {
engineConfiguration->ignitionPins[5] = Gpio::H144_IGN_6;
}
static void setupVbatt() {
// 4.7k high side/4.7k low side = 2.0 ratio divider
engineConfiguration->analogInputDividerCoefficient = 2.0f;
// set vbatt_divider 5.835
// 33k / 6.8k
engineConfiguration->vbattDividerCoeff = (33 + 6.8) / 6.8; // 5.835
// pin input +12 from Main Relay
engineConfiguration->vbattAdcChannel = H144_IN_VBATT; // 4T
engineConfiguration->adcVcc = 3.29f;
}
static void setupDefaultSensorInputs() {
// trigger inputs
engineConfiguration->triggerInputPins[0] = Gpio::H144_IN_CRANK;
@ -66,7 +52,7 @@ static void setupDefaultSensorInputs() {
#include "hellen_leds_144.cpp"
void setBoardConfigOverrides() {
setupVbatt();
setHellenVbatt();
// hellen88bmw uses L6205PD
engineConfiguration->etbIo[0].directionPin1 = Gpio::H144_OUT_PWM2; // ETB+

View File

@ -32,20 +32,6 @@ static void setIgnitionPins() {
engineConfiguration->ignitionPins[3] = Gpio::Unassigned;
}
static void setupVbatt() {
// 4.7k high side/4.7k low side = 2.0 ratio divider
engineConfiguration->analogInputDividerCoefficient = 2.0f;
// set vbatt_divider 5.835
// 33k / 6.8k
engineConfiguration->vbattDividerCoeff = (33 + 6.8) / 6.8; // 5.835
// pin input +12 from Main Relay
engineConfiguration->vbattAdcChannel = EFI_ADC_5; // 4T
engineConfiguration->adcVcc = 3.29f;
}
static void setupDefaultSensorInputs() {
// trigger inputs, hall
engineConfiguration->triggerInputPins[0] = Gpio::H144_IN_CAM;
@ -67,7 +53,7 @@ static void setupDefaultSensorInputs() {
#include "hellen_leds_144.cpp"
void setBoardConfigOverrides() {
setupVbatt();
setHellenVbatt();
setHellenSdCardSpi2();

View File

@ -11,6 +11,19 @@ void setHellenCan() {
engineConfiguration->canRxPin = H176_CAN_RX;
}
void setHellenVbatt() {
// 4.7k high side/4.7k low side = 2.0 ratio divider
engineConfiguration->analogInputDividerCoefficient = 2.0f;
// set vbatt_divider 5.835
// 33k / 6.8k
engineConfiguration->vbattDividerCoeff = (33 + 6.8) / 6.8; // 5.835
engineConfiguration->vbattAdcChannel = H144_IN_VBATT;
engineConfiguration->adcVcc = 3.29f;
}
void setHellen64Can() {
engineConfiguration->canTxPin = Gpio::B9;
engineConfiguration->canRxPin = Gpio::B8;

View File

@ -24,20 +24,6 @@ static void setIgnitionPins() {
engineConfiguration->ignitionPins[3] = Gpio::MM100_IGN4;
}
static void setupVbatt() {
// 4.7k high side/4.7k low side = 2.0 ratio divider
engineConfiguration->analogInputDividerCoefficient = 2.0f;
// set vbatt_divider 5.835
// 33k / 6.8k
engineConfiguration->vbattDividerCoeff = (33 + 6.8) / 6.8; // 5.835
// pin input +12 from Main Relay
engineConfiguration->vbattAdcChannel = MM100_IN_VBATT;
engineConfiguration->adcVcc = 3.29f;
}
static void setupDefaultSensorInputs() {
engineConfiguration->vehicleSpeedSensorInputPin = Gpio::MM100_IN_D2;
@ -61,7 +47,7 @@ static void setupDefaultSensorInputs() {
void setBoardConfigOverrides() {
// rev A needs EN pin but newer revisions would potentially not use it
setHellenMegaEnPin();
setupVbatt();
setHellenVbatt();
setHellenSdCardSpi1();
configureHellenMegaAccCS2Pin();

View File

@ -23,6 +23,8 @@ void configureHellenCanTerminator();
void setHellenCan();
void setHellen64Can();
void setHellenVbatt();
int detectHellenBoardId();
void detectHellenBoardType();