Line data Source code
1 : /* 2 : * @file trigger_toyota.cpp 3 : * 4 : * https://thedeltaecho.wordpress.com/2010/03/14/2jz-ge-cam-crank-signals/ 5 : * 6 : * @date Dec 14, 2015 7 : * @author Andrey Belomutskiy, (c) 2012-2020 8 : */ 9 : 10 : #include "pch.h" 11 : 12 : #include "trigger_toyota.h" 13 : 14 : /** 15 : * https://rusefi.com/forum/viewtopic.php?f=5&t=1720 16 : */ 17 1 : void initialize2jzGE3_34_simulation_shape(TriggerWaveform *s) { 18 1 : s->initialize(FOUR_STROKE_CAM_SENSOR, SyncEdge::Rise); 19 : 20 1 : float camD = 720 / 6; // 120 21 : 22 1 : float crankDelta = 720 / 36 / 2; // 10 23 : 24 1 : float camAngle = 1; 25 1 : float crankAngle = 2 * crankDelta; // skipping two teeth 26 : 27 11 : for (int i = 0; i < 10; i++) { 28 10 : s->addEvent720(crankAngle + 5, TriggerValue::RISE, TriggerWheel::T_SECONDARY); 29 10 : s->addEvent720(crankAngle + crankDelta, TriggerValue::FALL, TriggerWheel::T_SECONDARY); // 120 30 10 : crankAngle += 10; 31 : } // 2 + 10 32 : 33 1 : camAngle += camD; 34 1 : s->addEvent720(camAngle, TriggerValue::RISE, TriggerWheel::T_PRIMARY); // 120 35 1 : s->addEvent720(camAngle + 3, TriggerValue::FALL, TriggerWheel::T_PRIMARY); 36 : 37 13 : for (int i = 0; i < 12; i++) { 38 12 : s->addEvent720(crankAngle + 5, TriggerValue::RISE, TriggerWheel::T_SECONDARY); 39 12 : s->addEvent720(crankAngle + crankDelta, TriggerValue::FALL, TriggerWheel::T_SECONDARY); // 120 40 12 : crankAngle += 10; 41 : } // 2 + 22 42 : 43 : 44 1 : camAngle += camD; 45 : 46 13 : for (int i = 0; i < 12; i++) { 47 12 : s->addEvent720(crankAngle + 5, TriggerValue::RISE, TriggerWheel::T_SECONDARY); 48 12 : s->addEvent720(crankAngle + crankDelta, TriggerValue::FALL, TriggerWheel::T_SECONDARY); // 120 49 12 : crankAngle += crankDelta; 50 : } // 2 + 34 51 : 52 1 : camAngle += camD; 53 1 : s->addEvent720(camAngle, TriggerValue::RISE, TriggerWheel::T_PRIMARY); // 360 54 1 : s->addEvent720(camAngle + 3, TriggerValue::FALL, TriggerWheel::T_PRIMARY); 55 : 56 1 : crankAngle += 20; // skipping two teeth one more time 57 11 : for (int i = 0; i < 10; i++) { 58 10 : s->addEvent720(crankAngle + 5, TriggerValue::RISE, TriggerWheel::T_SECONDARY); 59 10 : s->addEvent720(crankAngle + crankDelta, TriggerValue::FALL, TriggerWheel::T_SECONDARY); // 120 60 10 : crankAngle += crankDelta; 61 : } // 2 + 10 62 : 63 1 : camAngle += camD; 64 : 65 13 : for (int i = 0; i < 12; i++) { 66 12 : s->addEvent720(crankAngle + 5, TriggerValue::RISE, TriggerWheel::T_SECONDARY); 67 12 : s->addEvent720(crankAngle + crankDelta, TriggerValue::FALL, TriggerWheel::T_SECONDARY); // 120 68 12 : crankAngle += crankDelta; 69 : } // 2 + 22 70 : 71 1 : camAngle += camD; 72 1 : s->addEvent720(camAngle, TriggerValue::RISE, TriggerWheel::T_PRIMARY); // 600 73 1 : s->addEvent720(camAngle + 3, TriggerValue::FALL, TriggerWheel::T_PRIMARY); 74 : 75 : 76 13 : for (int i = 0; i < 12; i++) { 77 12 : s->addEvent720(crankAngle + 5, TriggerValue::RISE, TriggerWheel::T_SECONDARY); 78 12 : s->addEvent720(crankAngle + crankDelta, TriggerValue::FALL, TriggerWheel::T_SECONDARY); // 120 79 12 : crankAngle += 10; 80 : } // 2 + 32 81 1 : camAngle += camD; 82 : 83 1 : s->shapeWithoutTdc = true; 84 1 : s->isSynchronizationNeeded = false; 85 1 : }