auto-sync

This commit is contained in:
rusEfi 2017-02-06 19:03:19 -05:00
parent 772bfea71a
commit 47019ad79a
7 changed files with 18 additions and 14 deletions

View File

@ -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,

View File

@ -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();

View File

@ -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

View File

@ -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]);
}

View File

@ -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",

View File

@ -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"

View File

@ -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);