From 47019ad79a457ff5bd925679b953588e185a7a7f Mon Sep 17 00:00:00 2001 From: rusEfi Date: Mon, 6 Feb 2017 19:03:19 -0500 Subject: [PATCH] auto-sync --- firmware/controllers/algo/obd_error_codes.h | 2 +- firmware/hw_layer/digital_input_hw.cpp | 14 +++++++++----- firmware/hw_layer/digital_input_hw.h | 2 +- firmware/hw_layer/trigger_input.cpp | 6 +++--- firmware/hw_layer/vehicle_speed.cpp | 2 +- firmware/integration/rusefi_config.txt | 2 +- .../models/src/com/rusefi/config/Fields.java | 4 ++-- 7 files changed, 18 insertions(+), 14 deletions(-) diff --git a/firmware/controllers/algo/obd_error_codes.h b/firmware/controllers/algo/obd_error_codes.h index 1df038f262..85382c293c 100644 --- a/firmware/controllers/algo/obd_error_codes.h +++ b/firmware/controllers/algo/obd_error_codes.h @@ -1824,7 +1824,7 @@ typedef enum { CUSTOM_ERR_TOO_FEW_EVENTS = 6140, CUSTOM_ERR_FLASH_CRC_FAILED = 6141, - CUSTOM_ERR_6142 = 6142, + CUSTOM_ERR_NOT_INPUT_PIN = 6142, CUSTOM_ERR_6143 = 6143, CUSTOM_ERR_6144 = 6144, CUSTOM_ERR_6145 = 6145, diff --git a/firmware/hw_layer/digital_input_hw.cpp b/firmware/hw_layer/digital_input_hw.cpp index 73b340ff81..c7b036f861 100644 --- a/firmware/hw_layer/digital_input_hw.cpp +++ b/firmware/hw_layer/digital_input_hw.cpp @@ -96,6 +96,7 @@ icuchannel_t getInputCaptureChannel(brain_pin_e hwPin) { switch (hwPin) { case GPIOA_2: case GPIOA_5: + case GPIOA_6: case GPIOA_8: case GPIOC_6: case GPIOE_5: @@ -103,11 +104,12 @@ icuchannel_t getInputCaptureChannel(brain_pin_e hwPin) { return ICU_CHANNEL_1; case GPIOA_3: + case GPIOA_7: case GPIOE_6: case GPIOE_11: return ICU_CHANNEL_2; default: - firmwareError(OBD_PCM_Processor_Fault, "Unexpected hw pin in getInputCaptureChannel %d", hwPin); + firmwareError(OBD_PCM_Processor_Fault, "Unexpected hw pin in getInputCaptureChannel %s", hwPortname(hwPin)); return ICU_CHANNEL_1; } } @@ -119,7 +121,7 @@ icuchannel_t getInputCaptureChannel(brain_pin_e hwPin) { * * TODO: migrate slow ADC to software timer so that TIM8 is also available for input capture */ -ICUDriver * getInputCaptureDriver(brain_pin_e hwPin) { +ICUDriver * getInputCaptureDriver(const char *msg, brain_pin_e hwPin) { #if STM32_ICU_USE_TIM1 if (hwPin == GPIOA_8 || hwPin == GPIOE_9 || @@ -135,7 +137,8 @@ ICUDriver * getInputCaptureDriver(brain_pin_e hwPin) { } #endif #if STM32_ICU_USE_TIM3 - if (hwPin == GPIOA_7 || + if (hwPin == GPIOA_6 || + hwPin == GPIOA_7 || hwPin == GPIOC_6 || hwPin == GPIOC_7) { return &ICUD3; @@ -154,6 +157,7 @@ ICUDriver * getInputCaptureDriver(brain_pin_e hwPin) { return &ICUD9; } #endif + firmwareError(CUSTOM_ERR_NOT_INPUT_PIN, "%s: Not input pin %s", msg, hwPortname(hwPin)); return (ICUDriver *) NULL; } @@ -161,7 +165,7 @@ void turnOnCapturePin(const char *msg, brain_pin_e brainPin) { ioportid_t port = getHwPort(brainPin); ioportmask_t pin = getHwPin(brainPin); - ICUDriver *driver = getInputCaptureDriver(brainPin); + ICUDriver *driver = getInputCaptureDriver(msg, brainPin); if (driver != NULL) { iomode_t mode = (iomode_t) PAL_MODE_ALTERNATE(getAlternateFunctions(driver)); mySetPadMode(msg, port, pin, mode); @@ -169,7 +173,7 @@ void turnOnCapturePin(const char *msg, brain_pin_e brainPin) { } digital_input_s * initWaveAnalyzerDriver(const char *msg, brain_pin_e brainPin) { - ICUDriver *driver = getInputCaptureDriver(brainPin); + ICUDriver *driver = getInputCaptureDriver(msg, brainPin); digital_input_s *hw = registeredIcus.add(); diff --git a/firmware/hw_layer/digital_input_hw.h b/firmware/hw_layer/digital_input_hw.h index a9c5f55114..50ded69512 100644 --- a/firmware/hw_layer/digital_input_hw.h +++ b/firmware/hw_layer/digital_input_hw.h @@ -26,7 +26,7 @@ typedef struct { void turnOnCapturePin(const char *msg, brain_pin_e brainPin); digital_input_s *initWaveAnalyzerDriver(const char *msg, brain_pin_e brainPin); void startInputDriver(digital_input_s *hw, bool isActiveHigh); -ICUDriver * getInputCaptureDriver(brain_pin_e hwPin); +ICUDriver * getInputCaptureDriver(const char *msg, brain_pin_e hwPin); icuchannel_t getInputCaptureChannel(brain_pin_e hwPin); #endif diff --git a/firmware/hw_layer/trigger_input.cpp b/firmware/hw_layer/trigger_input.cpp index 0050539f15..bda3d2128a 100644 --- a/firmware/hw_layer/trigger_input.cpp +++ b/firmware/hw_layer/trigger_input.cpp @@ -98,7 +98,7 @@ static ICUDriver *turnOnTriggerInputPin(const char *msg, brain_pin_e hwPin, ICUC turnOnCapturePin(msg, hwPin); icucfg->channel = getInputCaptureChannel(hwPin); - ICUDriver *driver = getInputCaptureDriver(hwPin); + ICUDriver *driver = getInputCaptureDriver(msg, hwPin); scheduleMsg(logger, "turnOnTriggerInputPin %s", hwPortname(hwPin)); // todo: reuse 'setWaveReaderMode' method here? if (driver != NULL) { @@ -121,7 +121,7 @@ static ICUDriver *turnOnTriggerInputPin(const char *msg, brain_pin_e hwPin, ICUC } static void turnOffTriggerInputPin(brain_pin_e hwPin) { - ICUDriver *driver = getInputCaptureDriver(hwPin); + ICUDriver *driver = getInputCaptureDriver("trigger_off", hwPin); if (driver != NULL) { icuDisable(driver); icuStop(driver); @@ -131,7 +131,7 @@ static void turnOffTriggerInputPin(brain_pin_e hwPin) { } static void rememberPrimaryChannel(void) { - primaryCrankDriver = getInputCaptureDriver( + primaryCrankDriver = getInputCaptureDriver("primary", boardConfiguration->triggerInputPins[0]); } diff --git a/firmware/hw_layer/vehicle_speed.cpp b/firmware/hw_layer/vehicle_speed.cpp index da0c2fbc39..be3d3f3da1 100644 --- a/firmware/hw_layer/vehicle_speed.cpp +++ b/firmware/hw_layer/vehicle_speed.cpp @@ -52,7 +52,7 @@ static void vsAnaWidthCallback(void) { } static void speedInfo(void) { - scheduleMsg(logger, "VSS at %s", + scheduleMsg(logger, "VSS input at %s", hwPortname(boardConfiguration->vehicleSpeedSensorInputPin)); scheduleMsg(logger, "c=%f eventCounter=%d speed=%f", diff --git a/firmware/integration/rusefi_config.txt b/firmware/integration/rusefi_config.txt index 897ca8a159..87ca1762b0 100644 --- a/firmware/integration/rusefi_config.txt +++ b/firmware/integration/rusefi_config.txt @@ -119,7 +119,7 @@ custom vvt_mode_e 4 bits, U32, @OFFSET@, [0:2], @@vvt_mode_e_enum@@ #define mass_storage_e_enum "Auto", "Always", "Never" custom mass_storage_e 4 bits, U32, @OFFSET@, [0:1], @@mass_storage_e_enum@@ -#define brain_input_pin_e_enum "INVALID", "INVALID", "PA2", "PA3", "INVALID", "PA5", "INVALID", "INVALID", "PA8", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PC6", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PE5", "INVALID", "PE7", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "NONE", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +#define brain_input_pin_e_enum "INVALID", "INVALID", "PA2", "PA3", "INVALID", "PA5", "INVALID", "INVALID", "PA8", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PC6", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PE5", "PE6", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "NONE", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" custom brain_input_pin_e 4 bits, U32, @OFFSET@, [0:6], @@brain_input_pin_e_enum@@ #define brain_pin_e_enum "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "NONE", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" diff --git a/java_console/models/src/com/rusefi/config/Fields.java b/java_console/models/src/com/rusefi/config/Fields.java index ad437f1489..022b877c13 100644 --- a/java_console/models/src/com/rusefi/config/Fields.java +++ b/java_console/models/src/com/rusefi/config/Fields.java @@ -1,6 +1,6 @@ package com.rusefi.config; -// this file was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Sun Feb 05 22:20:28 EST 2017 +// this file was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Mon Feb 06 18:26:39 EST 2017 public class Fields { public static final int LE_COMMAND_LENGTH = 200; public static final int FSIO_ADC_COUNT = 4; @@ -1214,7 +1214,7 @@ public class Fields { public static final Field HIP9011CSPINMODE = Field.create("HIP9011CSPINMODE", 900, FieldType.INT, pin_output_mode_e); public static final Field TACHOUTPUTPIN = Field.create("TACHOUTPUTPIN", 904, FieldType.INT, brain_pin_e); public static final Field TACHOUTPUTPINMODE = Field.create("TACHOUTPUTPINMODE", 908, FieldType.INT, pin_output_mode_e); - public static final String[] brain_input_pin_e = {"INVALID", "INVALID", "PA2", "PA3", "INVALID", "PA5", "INVALID", "INVALID", "PA8", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PC6", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PE5", "INVALID", "PE7", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "NONE", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"}; + public static final String[] brain_input_pin_e = {"INVALID", "INVALID", "PA2", "PA3", "INVALID", "PA5", "INVALID", "INVALID", "PA8", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PC6", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PE5", "PE6", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "NONE", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"}; public static final Field TRIGGERINPUTPINS1 = Field.create("TRIGGERINPUTPINS1", 912, FieldType.INT, brain_input_pin_e); public static final Field TRIGGERINPUTPINS2 = Field.create("TRIGGERINPUTPINS2", 916, FieldType.INT, brain_input_pin_e); public static final Field TRIGGERINPUTPINS3 = Field.create("TRIGGERINPUTPINS3", 920, FieldType.INT, brain_input_pin_e);