private static void ComputeFrequency(TimeReference now) { TimeReference longWindow = now.Subtract(LongWindow); if (longWindow.ShouldAdjustFreqency()) //verifica la bontà dell' ActualFrequency sull'intervallo lungo (orologio derivante) { ApplicaNuovaFrequenza(longWindow); LongWindow = now; } }
private static void ComputeFrequency(TimeReference now) { TimeReference longWindow = now.Subtract(LastReset); TimeReference smallWindow = now.Subtract(MobileWindow); #if timedebug MaxCycleError = 0; #endif #if timedebug CalcolaFrequenzaDebug(longWindow, now); #endif if (longWindow.InError()) //verifica la bontà dell' ActualFrequency sull'intervallo lungo (orologio derivante) { ApplicaNuovaFrequenza(longWindow, now); } if (smallWindow.LowRes >= 2000) //verifica la bontà dell' ActualFrequency sull'intervallo piccolo (orologio impazzito) - tolleranza 24ms/2000ms = 1.2% { if (smallWindow.InError()) { #if timedebug ShortWTrigger++; #endif System.Diagnostics.Debug.Write("SWC: "); ApplicaNuovaFrequenza(smallWindow, now); LastReset = now; } MobileWindow = now; } #if timedebug TotalError += MaxCycleError; Samples++; #endif }