From 67e8adf6f54184261e150a8ef0b0469293f5bf87 Mon Sep 17 00:00:00 2001 From: rusEfi Date: Tue, 30 Apr 2019 01:21:09 -0400 Subject: [PATCH] ETB micro progress --- firmware/controllers/injector_central.cpp | 8 ++++++++ firmware/controllers/sensors/tps.cpp | 19 ++++++++++++++++++- firmware/controllers/sensors/tps.h | 3 +++ firmware/controllers/settings.cpp | 4 ++-- firmware/controllers/settings.h | 1 + 5 files changed, 32 insertions(+), 3 deletions(-) diff --git a/firmware/controllers/injector_central.cpp b/firmware/controllers/injector_central.cpp index 75c103040d..ba967dc616 100644 --- a/firmware/controllers/injector_central.cpp +++ b/firmware/controllers/injector_central.cpp @@ -36,6 +36,7 @@ #include "settings.h" #include "idle_thread.h" #include "periodic_controller.h" +#include "tps.h" EXTERN_ENGINE ; @@ -250,8 +251,15 @@ static void handleCommandX14(uint16_t index) { // cmd_test_fuel_pump fuelPumpBench(); return; + case 2: + grabTPSIsClosed(); + return; + case 3: + grabTPSIsWideOpen(); + return; } + } // todo: this is probably a wrong place for this method now diff --git a/firmware/controllers/sensors/tps.cpp b/firmware/controllers/sensors/tps.cpp index 208cb85368..1b28a1fdfb 100644 --- a/firmware/controllers/sensors/tps.cpp +++ b/firmware/controllers/sensors/tps.cpp @@ -5,8 +5,11 @@ #include "tps.h" #include "interpolation.h" #include "analog_input.h" +#if EFI_PROD_CODE +#include "settings.h" +#endif /* EFI_PROD_CODE */ - EXTERN_ENGINE; +EXTERN_ENGINE; #if !EFI_PROD_CODE static int mockTps; @@ -127,6 +130,20 @@ int getTPS12bitAdc(DECLARE_ENGINE_PARAMETER_SIGNATURE) { #endif /* EFI_PROD_CODE */ } +void grabTPSIsClosed() { +#if EFI_PROD_CODE + engineConfiguration->tpsMin = getTPS10bitAdc(); + printTPSInfo(); +#endif /* EFI_PROD_CODE */ +} + +void grabTPSIsWideOpen() { +#if EFI_PROD_CODE + engineConfiguration->tpsMax = getTPS10bitAdc(); + printTPSInfo(); +#endif /* EFI_PROD_CODE */ +} + /** * @brief Position on physical primary TPS */ diff --git a/firmware/controllers/sensors/tps.h b/firmware/controllers/sensors/tps.h index e10d869d8c..5ffdc95a87 100644 --- a/firmware/controllers/sensors/tps.h +++ b/firmware/controllers/sensors/tps.h @@ -27,11 +27,14 @@ percent_t getTPS(DECLARE_ENGINE_PARAMETER_SIGNATURE); bool hasTpsSensor(DECLARE_ENGINE_PARAMETER_SIGNATURE); int convertVoltageTo10bitADC(float voltage); int getTPS12bitAdc(DECLARE_ENGINE_PARAMETER_SIGNATURE); +#define getTPS10bitAdc() (getTPS12bitAdc() / TPS_TS_CONVERSION) float getTPSVoltage(DECLARE_ENGINE_PARAMETER_SIGNATURE); percent_t getTpsValue(int adc DECLARE_ENGINE_PARAMETER_SUFFIX); void setBosch0280750009(DECLARE_ENGINE_PARAMETER_SIGNATURE); void setMockTpsPosition(percent_t tpsPosition); void setMockPedalPosition(percent_t value); +void grabTPSIsClosed(); +void grabTPSIsWideOpen(); typedef struct { efitimeus_t prevTime; diff --git a/firmware/controllers/settings.cpp b/firmware/controllers/settings.cpp index c090973f73..7bd2e1de53 100644 --- a/firmware/controllers/settings.cpp +++ b/firmware/controllers/settings.cpp @@ -408,7 +408,7 @@ static void printThermistor(const char *msg, ThermistorConf *config, ThermistorM scheduleMsg(&logger, "=============================="); } -static void printTPSInfo(void) { +void printTPSInfo(void) { #if EFI_PROD_CODE && HAL_USE_ADC if (!hasTpsSensor()) { scheduleMsg(&logger, "NO TPS SENSOR"); @@ -419,7 +419,7 @@ static void printTPSInfo(void) { scheduleMsg(&logger, "tps min (closed) %d/max (full) %d v=%.2f @%s", engineConfiguration->tpsMin, engineConfiguration->tpsMax, getTPSVoltage(PASS_ENGINE_PARAMETER_SIGNATURE), getPinNameByAdcChannel("tps", engineConfiguration->tpsAdcChannel, pinNameBuffer)); #endif /* EFI_PROD_CODE */ - scheduleMsg(&logger, "current 10bit=%d value=%.2f rate=%.2f", getTPS12bitAdc() / TPS_TS_CONVERSION, getTPS(PASS_ENGINE_PARAMETER_SIGNATURE), + scheduleMsg(&logger, "current 10bit=%d value=%.2f rate=%.2f", getTPS10bitAdc(), getTPS(PASS_ENGINE_PARAMETER_SIGNATURE), getTpsRateOfChange()); } diff --git a/firmware/controllers/settings.h b/firmware/controllers/settings.h index ee4ba26245..ba49d590fe 100644 --- a/firmware/controllers/settings.h +++ b/firmware/controllers/settings.h @@ -16,6 +16,7 @@ void printSpiState(Logging *logger, board_configuration_s *boardConfiguration); void printConfiguration(const engine_configuration_s *engineConfiguration); void scheduleStopEngine(void); void setCallFromPitStop(int durationMs); +void printTPSInfo(void); void setEngineType(int value); /** * See also getEngine_type_e()