From 035d18e7ae4fa3157ef4ae64898d9155eecd2b60 Mon Sep 17 00:00:00 2001 From: rusefi Date: Sat, 25 Apr 2020 22:23:53 -0400 Subject: [PATCH] Bosch vvt shape #1368 --- .../trigger/decoders/trigger_honda.cpp | 3 +- .../trigger/decoders/trigger_honda.h | 2 +- .../trigger/decoders/trigger_structure.cpp | 9 ++++-- .../trigger/decoders/trigger_universal.cpp | 29 +++++++++++++++---- .../trigger/decoders/trigger_universal.h | 7 +++-- 5 files changed, 35 insertions(+), 15 deletions(-) diff --git a/firmware/controllers/trigger/decoders/trigger_honda.cpp b/firmware/controllers/trigger/decoders/trigger_honda.cpp index a4f4d53073..bf3b00ac08 100644 --- a/firmware/controllers/trigger/decoders/trigger_honda.cpp +++ b/firmware/controllers/trigger/decoders/trigger_honda.cpp @@ -314,8 +314,7 @@ void configureHondaAccordShifted(TriggerWaveform *s) { s->isSynchronizationNeeded = false; } -void configureOnePlus16(TriggerWaveform *s, operation_mode_e operationMode) { - UNUSED(operationMode); +void configureOnePlus16(TriggerWaveform *s) { s->initialize(FOUR_STROKE_CAM_SENSOR); int totalTeethCount = 16; diff --git a/firmware/controllers/trigger/decoders/trigger_honda.h b/firmware/controllers/trigger/decoders/trigger_honda.h index a76c47bf1f..83a7ef5102 100644 --- a/firmware/controllers/trigger/decoders/trigger_honda.h +++ b/firmware/controllers/trigger/decoders/trigger_honda.h @@ -17,7 +17,7 @@ void configureHonda_1_4_24(TriggerWaveform *s, bool withOneEventSignal, bool wit trigger_wheel_e const fourEventWave, float d); -void configureOnePlus16(TriggerWaveform *s, operation_mode_e operationMode); +void configureOnePlus16(TriggerWaveform *s); void configureHondaCbr600(TriggerWaveform *s); void configureHondaCbr600custom(TriggerWaveform *s); diff --git a/firmware/controllers/trigger/decoders/trigger_structure.cpp b/firmware/controllers/trigger/decoders/trigger_structure.cpp index 9ed076200d..95ad817449 100644 --- a/firmware/controllers/trigger/decoders/trigger_structure.cpp +++ b/firmware/controllers/trigger/decoders/trigger_structure.cpp @@ -516,15 +516,15 @@ void TriggerWaveform::initializeTriggerWaveform(Logging *logger, operation_mode_ break; case TT_ONE_PLUS_ONE: - configureOnePlusOne(this, ambiguousOperationMode); + configureOnePlusOne(this); break; case TT_3_1_CAM: - configure3_1_cam(this, ambiguousOperationMode); + configure3_1_cam(this); break; case TT_ONE_PLUS_TOOTHED_WHEEL_60_2: - configureOnePlus60_2(this, ambiguousOperationMode); + configureOnePlus60_2(this); break; case TT_ONE: @@ -552,6 +552,9 @@ void TriggerWaveform::initializeTriggerWaveform(Logging *logger, operation_mode_ break; case TT_BOSCH_QUICK_START: + configureQuickStartSenderWheel(this); + break; + case TT_HONDA_K_12_1: configureHondaK_12_1(this); break; diff --git a/firmware/controllers/trigger/decoders/trigger_universal.cpp b/firmware/controllers/trigger/decoders/trigger_universal.cpp index 491ef75e70..ac294ff383 100644 --- a/firmware/controllers/trigger/decoders/trigger_universal.cpp +++ b/firmware/controllers/trigger/decoders/trigger_universal.cpp @@ -48,8 +48,7 @@ void initializeSkippedToothTriggerWaveformExt(TriggerWaveform *s, int totalTeeth } -void configureOnePlusOne(TriggerWaveform *s, operation_mode_e operationMode) { - UNUSED(operationMode); +void configureOnePlusOne(TriggerWaveform *s) { s->initialize(FOUR_STROKE_CAM_SENSOR); s->addEvent720(180, T_PRIMARY, TV_RISE); @@ -62,8 +61,8 @@ void configureOnePlusOne(TriggerWaveform *s, operation_mode_e operationMode) { s->useOnlyPrimaryForSync = true; } -void configureOnePlus60_2(TriggerWaveform *s, operation_mode_e operationMode) { - UNUSED(operationMode); +// todo: open question if we need this trigger +void configureOnePlus60_2(TriggerWaveform *s) { s->initialize(FOUR_STROKE_CAM_SENSOR); int totalTeethCount = 60; @@ -81,8 +80,7 @@ void configureOnePlus60_2(TriggerWaveform *s, operation_mode_e operationMode) { s->useOnlyPrimaryForSync = true; } -void configure3_1_cam(TriggerWaveform *s, operation_mode_e operationMode) { - UNUSED(operationMode); +void configure3_1_cam(TriggerWaveform *s) { s->initialize(FOUR_STROKE_CAM_SENSOR); @@ -119,5 +117,24 @@ void configure3_1_cam(TriggerWaveform *s, operation_mode_e operationMode) { } void configureQuickStartSenderWheel(TriggerWaveform *s) { + s->initialize(FOUR_STROKE_CAM_SENSOR); + s->useRiseEdge = false; + s->gapBothDirections = false; + + int offset = 2 * 20; + + s->setTriggerSynchronizationGap3(0, 2, 3); + + s->addEventAngle(offset + 2 * 0, T_PRIMARY, TV_RISE); + s->addEventAngle(offset + 2 * 70, T_PRIMARY, TV_FALL); + + s->addEventAngle(offset + 2 * 90, T_PRIMARY, TV_RISE); + s->addEventAngle(offset + 2 * 110, T_PRIMARY, TV_FALL); + + s->addEventAngle(offset + 2 * 180, T_PRIMARY, TV_RISE); + s->addEventAngle(offset + 2 * 200, T_PRIMARY, TV_FALL); + + s->addEventAngle(offset + 2 * 270, T_PRIMARY, TV_RISE); + s->addEventAngle(offset + 2 * 340, T_PRIMARY, TV_FALL); } diff --git a/firmware/controllers/trigger/decoders/trigger_universal.h b/firmware/controllers/trigger/decoders/trigger_universal.h index 26dce664b5..45c2385de8 100644 --- a/firmware/controllers/trigger/decoders/trigger_universal.h +++ b/firmware/controllers/trigger/decoders/trigger_universal.h @@ -20,10 +20,11 @@ void addSkippedToothTriggerEvents(trigger_wheel_e wheel, TriggerWaveform *s, void initializeSkippedToothTriggerWaveformExt(TriggerWaveform *s, int totalTeethCount, int skippedCount, operation_mode_e operationMode);; -void configureOnePlus60_2(TriggerWaveform *s, operation_mode_e operationMode); +void configureOnePlus60_2(TriggerWaveform *s); // TT_3_1_CAM -void configure3_1_cam(TriggerWaveform *s, operation_mode_e operationMode); +void configure3_1_cam(TriggerWaveform *s); -void configureOnePlusOne(TriggerWaveform *s, operation_mode_e operationMode); +void configureOnePlusOne(TriggerWaveform *s); +// TT_BOSCH_QUICK_START void configureQuickStartSenderWheel(TriggerWaveform *s);