auto-sync

This commit is contained in:
rusEfi 2014-11-25 21:03:15 -06:00
parent 786c576476
commit 851b9b93de
1 changed files with 14 additions and 2 deletions

View File

@ -15,6 +15,7 @@
#include "histogram.h" #include "histogram.h"
#include "wave_chart.h" #include "wave_chart.h"
#include "pwm_generator_logic.h" #include "pwm_generator_logic.h"
#include "efilib2.h"
#include "rpm_calculator.h" #include "rpm_calculator.h"
#if EFI_PROD_CODE #if EFI_PROD_CODE
@ -64,14 +65,21 @@ EXTERN_ENGINE
int triggerReentraint = 0; int triggerReentraint = 0;
int maxTriggerReentraint = 0; int maxTriggerReentraint = 0;
uint32_t triggerBegin;
uint32_t triggerDuration;
uint32_t triggerMaxDuration = 0;
void hwHandleShaftSignal(trigger_event_e signal) { void hwHandleShaftSignal(trigger_event_e signal) {
triggerBegin = GET_TIMESTAMP();
if (triggerReentraint > maxTriggerReentraint) if (triggerReentraint > maxTriggerReentraint)
maxTriggerReentraint = triggerReentraint; maxTriggerReentraint = triggerReentraint;
triggerReentraint++; triggerReentraint++;
efiAssertVoid(getRemainingStack(chThdSelf()) > 128, "lowstck#8"); efiAssertVoid(getRemainingStack(chThdSelf()) > 128, "lowstck#8");
triggerCentral.handleShaftSignal(signal, engine, engine->engineConfiguration); triggerCentral.handleShaftSignal(signal, engine, engine->engineConfiguration);
triggerReentraint--; triggerReentraint--;
triggerDuration = GET_TIMESTAMP() - triggerBegin;
if(triggerDuration > triggerMaxDuration)
triggerMaxDuration = triggerDuration;
} }
#endif /* EFI_PROD_CODE */ #endif /* EFI_PROD_CODE */
@ -241,10 +249,14 @@ static void triggerInfo(Engine *engine) {
#endif #endif
#if EFI_PROD_CODE #if EFI_PROD_CODE
scheduleMsg(&logger, "sn=%s ignitionMathTime=%d schTime=%d", scheduleMsg(&logger, "sn=%s ignitionMathTime=%d schTime=%d triggerMaxDuration=%d",
boolToString(ts->isSynchronizationNeeded), boolToString(ts->isSynchronizationNeeded),
engine->ignitionMathTime, engine->ignitionMathTime,
engine->ignitionSchTime); engine->ignitionSchTime,
triggerMaxDuration);
triggerMaxDuration = 0;
scheduleMsg(&logger, "maxLockTime=%d / maxTriggerReentraint=%d", maxLockTime, maxTriggerReentraint); scheduleMsg(&logger, "maxLockTime=%d / maxTriggerReentraint=%d", maxLockTime, maxTriggerReentraint);
scheduleMsg(&logger, "maxEventQueueTime=%d", maxEventQueueTime); scheduleMsg(&logger, "maxEventQueueTime=%d", maxEventQueueTime);