From f7835b3df1bbca8552485ab8e1436f103f7e33a4 Mon Sep 17 00:00:00 2001 From: rusEfi Date: Sun, 7 Sep 2014 17:04:23 -0500 Subject: [PATCH] auto-sync --- firmware/config/engines/mazda_miata.cpp | 3 ++- firmware/controllers/algo/advance_map.h | 9 --------- firmware/controllers/algo/engine_configuration.h | 4 +++- firmware/controllers/settings.cpp | 15 +++++++++++++++ 4 files changed, 20 insertions(+), 11 deletions(-) diff --git a/firmware/config/engines/mazda_miata.cpp b/firmware/config/engines/mazda_miata.cpp index 6402f71810..97c1592dfa 100644 --- a/firmware/config/engines/mazda_miata.cpp +++ b/firmware/config/engines/mazda_miata.cpp @@ -12,6 +12,7 @@ #include "mazda_miata.h" #include "engine_math.h" +#include "advance_map.h" // setFrankenso_01_LCD #include "honda_accord.h" @@ -259,7 +260,7 @@ void setMiata1994(engine_configuration_s *engineConfiguration, board_configurati boardConfiguration->fuelPumpPin = GPIOE_4; - boardConfiguration->injectionPins[0] = GPIO_NONE; + boardConfiguration->injectionPins[0] = GPIOD_7; boardConfiguration->injectionPins[1] = GPIOE_2; boardConfiguration->injectionPins[2] = GPIOB_8; boardConfiguration->injectionPins[3] = GPIOB_7; diff --git a/firmware/controllers/algo/advance_map.h b/firmware/controllers/algo/advance_map.h index 3867bb6891..6b44a2b600 100644 --- a/firmware/controllers/algo/advance_map.h +++ b/firmware/controllers/algo/advance_map.h @@ -8,19 +8,10 @@ #ifndef ADVANCE_H_ #define ADVANCE_H_ -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - #define AD_LOAD_COUNT 16 #define AD_RPM_COUNT 16 float getAdvance(int rpm, float engineLoad); void prepareTimingMap(void); -#ifdef __cplusplus -} -#endif /* __cplusplus */ - #endif /* ADVANCE_H_ */ diff --git a/firmware/controllers/algo/engine_configuration.h b/firmware/controllers/algo/engine_configuration.h index 0b6a0ee240..ca664f7784 100644 --- a/firmware/controllers/algo/engine_configuration.h +++ b/firmware/controllers/algo/engine_configuration.h @@ -28,6 +28,8 @@ typedef struct { short int crankingRpm; } cranking_parameters_s; +#define INJECTION_PIN_COUNT 12 + #define FUEL_RPM_COUNT 16 #define FUEL_LOAD_COUNT 16 #define VE_RPM_COUNT 16 @@ -115,7 +117,7 @@ typedef struct { brain_pin_e fuelPumpPin; pin_output_mode_e fuelPumpPinMode; - brain_pin_e injectionPins[12]; + brain_pin_e injectionPins[INJECTION_PIN_COUNT]; pin_output_mode_e injectionPinMode; brain_pin_e ignitionPins[12]; diff --git a/firmware/controllers/settings.cpp b/firmware/controllers/settings.cpp index 06733b9fa5..47c4c5c447 100644 --- a/firmware/controllers/settings.cpp +++ b/firmware/controllers/settings.cpp @@ -428,6 +428,20 @@ static void setPotSpi(int spi) { boardConfiguration->digitalPotentiometerSpiDevice = (spi_device_e) spi; } +static void setInjectionPin(const char *indexStr, const char *pinName) { + int index = atoi(indexStr); + if (index < 0 || index > INJECTION_PIN_COUNT) + return; + brain_pin_e pin = parseBrainPin(pinName); + // todo: extract method - code duplication with other 'set_xxx_pin' methods? + if (pin == GPIO_INVALID) { + scheduleMsg(&logger, "invalid pin name [%s]", pinName); + return; + } + scheduleMsg(&logger, "setting injection pin[%d] to %s please save&restart", index, hwPortname(pin)); + boardConfiguration->injectionPins[index] = pin; +} + static void setTriggerInputPin(const char *indexStr, const char *pinName) { int index = atoi(indexStr); if (index < 0 || index > 2) @@ -673,6 +687,7 @@ void initSettings(void) { addConsoleActionF("set_vbatt_divider", setVBattDivider); #if EFI_PROD_CODE + addConsoleActionSS("set_injection_pin", setInjectionPin); addConsoleActionSS("set_trigger_input_pin", setTriggerInputPin); addConsoleActionSS("set_trigger_simulator_pin", setTriggerSimulatorPin); addConsoleActionSS("set_trigger_simulator_mode", setTriggerSimulatorMode);