From 3f841aead2d8d7f5dcca0dcf5ffe189994abffa6 Mon Sep 17 00:00:00 2001 From: rusEfi Date: Fri, 3 Apr 2015 22:10:08 -0500 Subject: [PATCH] auto-sync --- firmware/config/engines/bmw_e34.cpp | 2 +- .../controllers/algo/engine_configuration.cpp | 2 +- .../engine_configuration_generated_structures.h | 6 +++--- firmware/controllers/flash_main.h | 2 +- firmware/controllers/idle_thread.cpp | 13 +++++++++---- firmware/hw_layer/io_pins.cpp | 6 +++--- firmware/hw_layer/pin_repository.cpp | 9 +++++---- firmware/hw_layer/pin_repository.h | 16 +++++++++------- firmware/hw_layer/stepper.cpp | 2 ++ firmware/integration/rusefi_config.txt | 2 +- firmware/tunerstudio/rusefi.ini | 2 +- firmware/util/cli_registry.cpp | 2 +- 12 files changed, 37 insertions(+), 27 deletions(-) diff --git a/firmware/config/engines/bmw_e34.cpp b/firmware/config/engines/bmw_e34.cpp index 0fb6eaf740..1429ce73cf 100644 --- a/firmware/config/engines/bmw_e34.cpp +++ b/firmware/config/engines/bmw_e34.cpp @@ -82,7 +82,7 @@ void setBmwE34(DECLARE_ENGINE_PARAMETER_F) { boardConfiguration->idle.solenoidPinMode = OM_INVERTED; boardConfiguration->idle.solenoidFrequency = 300; // set_idle_pwm 50 - boardConfiguration->idlePosition = 0.5; + boardConfiguration->idlePosition = 50; // turbocharger boost control solenoid: TODO output: GPIOE_6 // water injection #1 TODO GPIOD_7 diff --git a/firmware/controllers/algo/engine_configuration.cpp b/firmware/controllers/algo/engine_configuration.cpp index afbc3b80f5..2ee89afe22 100644 --- a/firmware/controllers/algo/engine_configuration.cpp +++ b/firmware/controllers/algo/engine_configuration.cpp @@ -360,7 +360,7 @@ void setDefaultConfiguration(DECLARE_ENGINE_PARAMETER_F) { boardConfiguration->idle.solenoidFrequency = 200; // set_idle_position 50 - boardConfiguration->idlePosition = 0.5; + boardConfiguration->idlePosition = 50; engineConfiguration->targetIdleRpm = 1200; // engineConfiguration->idleMode = IM_AUTO; engineConfiguration->idleMode = IM_MANUAL; diff --git a/firmware/controllers/algo/engine_configuration_generated_structures.h b/firmware/controllers/algo/engine_configuration_generated_structures.h index 4c62da2e39..59e7854822 100644 --- a/firmware/controllers/algo/engine_configuration_generated_structures.h +++ b/firmware/controllers/algo/engine_configuration_generated_structures.h @@ -1,4 +1,4 @@ -// this section was generated by config_definition.jar on Fri Apr 03 20:20:44 EDT 2015 +// this section was generated by config_definition.jar on Fri Apr 03 21:10:20 EDT 2015 // begin #include "rusefi_types.h" typedef struct { @@ -255,7 +255,7 @@ typedef struct { */ idle_hardware_s idle; /** - * value between 0 and 1 + * value between 0 and 100 * offset 20 */ float idlePosition; @@ -1235,4 +1235,4 @@ typedef struct { } engine_configuration_s; // end -// this section was generated by config_definition.jar on Fri Apr 03 20:20:44 EDT 2015 +// this section was generated by config_definition.jar on Fri Apr 03 21:10:20 EDT 2015 diff --git a/firmware/controllers/flash_main.h b/firmware/controllers/flash_main.h index 50b5f8cdc3..4508bf50ba 100644 --- a/firmware/controllers/flash_main.h +++ b/firmware/controllers/flash_main.h @@ -12,7 +12,7 @@ #include "engine_configuration.h" #include "engine.h" -#define FLASH_DATA_VERSION 7599 +#define FLASH_DATA_VERSION 7600 void readFromFlash(void); void initFlash(Logging *sharedLogger, Engine *engine); diff --git a/firmware/controllers/idle_thread.cpp b/firmware/controllers/idle_thread.cpp index 464461cd16..fd5a480974 100644 --- a/firmware/controllers/idle_thread.cpp +++ b/firmware/controllers/idle_thread.cpp @@ -46,6 +46,11 @@ static SimplePwm idleValvePwm; static StepperMotor iacMotor; +/** + * that's the position with CLT and IAT corrections + */ +static float actualIdlePosition = -1.0f; + /** * Idle level calculation algorithm lives in idle_controller.cpp */ @@ -75,17 +80,17 @@ static void setIdleValvePwm(percent_t value) { if (value < 0.01 || value > 99.9) return; scheduleMsg(logger, "setting idle valve PWM %f", value); - float f = 0.01 * value; - boardConfiguration->idlePosition = f; showIdleInfo(); /** * currently idle level is an percent value (0-100 range), and PWM takes a float in the 0..1 range * todo: unify? */ - idleValvePwm.setSimplePwmDutyCycle(f); + idleValvePwm.setSimplePwmDutyCycle(value / 100); } static void setIdleValvePosition(int position) { + boardConfiguration->idlePosition = position; + if (boardConfiguration->useStepperIdle) { iacMotor.targetPosition = position; } else { @@ -153,7 +158,7 @@ void startIdleThread(Logging*sharedLogger, Engine *engine) { * Start PWM for idleValvePin */ startSimplePwmExt(&idleValvePwm, "Idle Valve", boardConfiguration->idle.solenoidPin, &idlePin, - boardConfiguration->idle.solenoidFrequency, boardConfiguration->idlePosition, + boardConfiguration->idle.solenoidFrequency, boardConfiguration->idlePosition / 100, applyIdleSolenoidPinState); } diff --git a/firmware/hw_layer/io_pins.cpp b/firmware/hw_layer/io_pins.cpp index c7c669040a..d33ea5a42e 100644 --- a/firmware/hw_layer/io_pins.cpp +++ b/firmware/hw_layer/io_pins.cpp @@ -1,5 +1,5 @@ /** - * @file io_pins.c + * @file io_pins.cpp * @brief It could be that the main purpose of this file is the status LED blinking * * @date Jan 24, 2013 @@ -64,7 +64,7 @@ GPIO_TypeDef * getHwPort(brain_pin_e brainPin) { firmwareError("Invalid brain_pin_e: %d", brainPin); return GPIO_NULL; } - return PORTS[brainPin / 16]; + return PORTS[brainPin / PORT_SIZE]; } ioportmask_t getHwPin(brain_pin_e brainPin) { @@ -74,7 +74,7 @@ ioportmask_t getHwPin(brain_pin_e brainPin) { firmwareError("Invalid brain_pin_e: %d", brainPin); return EFI_ERROR_CODE; } - return brainPin % 16; + return brainPin % PORT_SIZE; } void outputPinRegisterExt2(const char *msg, OutputPin *output, brain_pin_e brainPin, pin_output_mode_e *outputMode) { diff --git a/firmware/hw_layer/pin_repository.cpp b/firmware/hw_layer/pin_repository.cpp index a22a7c69f3..cfb19e931c 100644 --- a/firmware/hw_layer/pin_repository.cpp +++ b/firmware/hw_layer/pin_repository.cpp @@ -16,7 +16,7 @@ #include "chprintf.h" #include "rusefi.h" -#define PIN_REPO_SIZE 7 * 16 +#define PIN_REPO_SIZE 7 * PORT_SIZE const char *PIN_USED[PIN_REPO_SIZE]; static int initialized = FALSE; @@ -70,8 +70,9 @@ static int getPortIndex(GPIO_TypeDef* port) { static void reportPins(void) { for (int i = 0; i < PIN_REPO_SIZE; i++) { const char *name = PIN_USED[i]; - if (name != NULL) - print("ping %d: %s\r\n", i, name); + if (name != NULL) { + print("pin %d: %s\r\n", i, name); + } } print("Total pins count: %d\r\n", totalPinsUsed); @@ -157,7 +158,7 @@ iomode_t getInputMode(pin_input_mode_e mode) { static int getIndex(ioportid_t port, ioportmask_t pin) { int portIndex = getPortIndex(port); - return portIndex * 16 + pin; + return portIndex * PORT_SIZE + pin; } const char * getPinFunction(brain_input_pin_e brainPin) { diff --git a/firmware/hw_layer/pin_repository.h b/firmware/hw_layer/pin_repository.h index 96be191dc2..ed6b9ab5d4 100644 --- a/firmware/hw_layer/pin_repository.h +++ b/firmware/hw_layer/pin_repository.h @@ -21,27 +21,29 @@ void outputPinRegister(const char *msg, OutputPin *output, GPIO_TypeDef *port, uint32_t pin); #endif /* __cplusplus */ +#define PORT_SIZE 16 + +void initPinRepository(void); +brain_pin_e parseBrainPin(const char *str); +void mySetPadMode(const char *msg, ioportid_t port, ioportmask_t pin, iomode_t mode); + #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ -void initPinRepository(void); const char *hwPortname(brain_pin_e brainPin); -brain_pin_e parseBrainPin(const char *str); -void mySetPadMode(const char *msg, ioportid_t port, ioportmask_t pin, iomode_t mode); const char * getPinFunction(brain_input_pin_e brainPin); void mySetPadMode2(const char *msg, brain_pin_e pin, iomode_t mode); const char *portname(GPIO_TypeDef* GPIOx); -iomode_t getInputMode(pin_input_mode_e mode); - -ioportmask_t getHwPin(brain_pin_e brainPin); -GPIO_TypeDef * getHwPort(brain_pin_e brainPin); #ifdef __cplusplus } #endif /* __cplusplus */ +iomode_t getInputMode(pin_input_mode_e mode); void efiIcuStart(ICUDriver *icup, const ICUConfig *config); +ioportmask_t getHwPin(brain_pin_e brainPin); +GPIO_TypeDef * getHwPort(brain_pin_e brainPin); #endif /* PIN_REPOSITORY_H_ */ diff --git a/firmware/hw_layer/stepper.cpp b/firmware/hw_layer/stepper.cpp index d7ec4c94f8..bbfd556c99 100644 --- a/firmware/hw_layer/stepper.cpp +++ b/firmware/hw_layer/stepper.cpp @@ -54,7 +54,9 @@ StepperMotor::StepperMotor() { currentPosition = 0; targetPosition = 0; directionPort = NULL; + directionPin = 0; stepPort = NULL; + stepPin = 0; } void StepperMotor::pulse() { diff --git a/firmware/integration/rusefi_config.txt b/firmware/integration/rusefi_config.txt index 8c504d7f3e..86204c1f0c 100644 --- a/firmware/integration/rusefi_config.txt +++ b/firmware/integration/rusefi_config.txt @@ -267,7 +267,7 @@ struct_no_prefix board_configuration_s idle_hardware_s idle; - float idlePosition;value between 0 and 1;"%", 1, 0, 0, 100, 0 + float idlePosition;value between 0 and 100;"%", 1, 0, 0, 100, 0 brain_pin_e fuelPumpPin; pin_output_mode_e fuelPumpPinMode; diff --git a/firmware/tunerstudio/rusefi.ini b/firmware/tunerstudio/rusefi.ini index 1fe8a5f5d6..870b138c92 100644 --- a/firmware/tunerstudio/rusefi.ini +++ b/firmware/tunerstudio/rusefi.ini @@ -40,7 +40,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated by ConfigDefinition.jar on Fri Apr 03 20:20:46 EDT 2015 +; this section was generated by ConfigDefinition.jar on Fri Apr 03 21:10:22 EDT 2015 pageSize = 15288 page = 1 diff --git a/firmware/util/cli_registry.cpp b/firmware/util/cli_registry.cpp index 2647a4924c..4ccc516be7 100644 --- a/firmware/util/cli_registry.cpp +++ b/firmware/util/cli_registry.cpp @@ -389,7 +389,7 @@ int tokenLength(const char *msgp) { void initConsoleLogic(Logging *sharedLogger) { logging = sharedLogger; - resetConsoleActions(); +// resetConsoleActions(); addConsoleAction("help", helpCommand); addConsoleActionI("echo", echo); }