From 79a25b6d77af9b1a068be7dd34b4b1cbb987fb4b Mon Sep 17 00:00:00 2001 From: rusEfi Date: Sat, 20 Aug 2016 19:02:07 -0400 Subject: [PATCH] auto-sync --- firmware/controllers/trigger/trigger_central.cpp | 5 +++++ firmware/hw_layer/trigger_input.cpp | 12 +++++++----- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/firmware/controllers/trigger/trigger_central.cpp b/firmware/controllers/trigger/trigger_central.cpp index 491a1cbe46..e04933eab5 100644 --- a/firmware/controllers/trigger/trigger_central.cpp +++ b/firmware/controllers/trigger/trigger_central.cpp @@ -329,6 +329,11 @@ void triggerInfo(void) { #endif #if EFI_PROD_CODE || defined(__DOXYGEN__) + if (engineConfiguration->camInput != GPIO_UNASSIGNED) { + scheduleMsg(logger, "CAM input: %s", hwPortname(engineConfiguration->camInput)); + + } + scheduleMsg(logger, "primary trigger input: %s", hwPortname(boardConfiguration->triggerInputPins[0])); scheduleMsg(logger, "primary trigger simulator: %s %s freq=%d", diff --git a/firmware/hw_layer/trigger_input.cpp b/firmware/hw_layer/trigger_input.cpp index cbba862606..fdaeefa2c5 100644 --- a/firmware/hw_layer/trigger_input.cpp +++ b/firmware/hw_layer/trigger_input.cpp @@ -84,10 +84,10 @@ static ICUConfig cam_icucfg = { ICU_INPUT_ACTIVE_LOW, 100000, /* 100kHz ICU cloc cam_icu_width_callback, cam_icu_period_callback }; -static ICUDriver *turnOnTriggerInputPin(brain_pin_e hwPin) { +static ICUDriver *turnOnTriggerInputPin(brain_pin_e hwPin, ICUConfig *icucfg) { // configure pin turnOnCapturePin("trigger", hwPin); - shaft_icucfg.channel = getInputCaptureChannel(hwPin); + icucfg->channel = getInputCaptureChannel(hwPin); ICUDriver *driver = getInputCaptureDriver(hwPin); scheduleMsg(logger, "turnOnTriggerInputPin %s", hwPortname(hwPin)); @@ -100,7 +100,7 @@ static ICUDriver *turnOnTriggerInputPin(brain_pin_e hwPin) { // bool needPeriodCallback = !CONFIG(useOnlyRisingEdgeForTrigger) || !TRIGGER_SHAPE(useRiseEdge); // shaft_icucfg.period_cb = needPeriodCallback ? shaft_icu_period_callback : NULL; - efiIcuStart(driver, &shaft_icucfg); + efiIcuStart(driver, icucfg); if (driver->state == ICU_READY) { icuEnable(driver); } else { @@ -129,7 +129,7 @@ static void rememberPrimaryChannel(void) { void turnOnTriggerInputPins(Logging *sharedLogger) { logger = sharedLogger; for (int i = 0; i < TRIGGER_SUPPORTED_CHANNELS; i++) { - turnOnTriggerInputPin(boardConfiguration->triggerInputPins[i]); + turnOnTriggerInputPin(boardConfiguration->triggerInputPins[i], &shaft_icucfg); } rememberPrimaryChannel(); @@ -154,10 +154,12 @@ void applyNewTriggerInputPins(void) { for (int i = 0; i < TRIGGER_SUPPORTED_CHANNELS; i++) { if (boardConfiguration->triggerInputPins[i] != activeConfiguration.bc.triggerInputPins[i]) { - turnOnTriggerInputPin(boardConfiguration->triggerInputPins[i]); + turnOnTriggerInputPin(boardConfiguration->triggerInputPins[i], &shaft_icucfg); } } + turnOnTriggerInputPin(engineConfiguration->camInput, &cam_icucfg); + rememberPrimaryChannel(); }