[time-nuts] GPS message jitter (was GPS for Nixie Clock)

David J Taylor david-taylor at blueyonder.co.uk
Mon Jul 18 02:46:00 EDT 2016


> You can also use the QueryPeformanceCounter and related functions for 
> better precision.

From: Mark Sims

Heather's gotta work with XP (and maybe Win98)...  too many people 
(including me) run it on old trashy laptops, so no fancy pants new fangled 
Windoze calls allowed...

In the past I've avoided the use of QueryPerformanceCounter due to potential 
issues with AMD processors, multi-core processors and multi-processor 
systems,  inaccurate/invalid reported CPU clock frequency (TSC tick count 
divisor) values,  variable clock rate systems, etc.   I'm now back to using 
it, but have added an option for switching back to GetTickCount() and it's 
16 msec granularity.  I'm getting very good results so far.
_______________________________________________

Mark,

You can easily use the new functions if they are available simply by asking 
Kernel32.dll whether it knows about them.  If not, use the old function, if 
so, use the new.  The result from old and new is identical in format, just 
better in precision in the newer.



==================================
var
  FPreciseFT: procedure (var lpSystemTimeAsFileTime: TFileTime); stdcall;

begin
  FKernel32 := LoadLibrary ('kernel32.dll');
  if FKernel32 <> 0 then
    begin
    FPreciseFT := GetProcAddress (FKernel32, 
'GetSystemTimePreciseAsFileTime');
    if @FPreciseFT = nil then
      FPreciseFT := GetProcAddress (FKernel32, 'GetSystemTimeAsFileTime');
    FreeLibrary (FKernel32);
    end;
end.
==================================

Cheers,
-- 
SatSignal Software - Quality software written to your requirements
Web: http://www.satsignal.eu
Email: david-taylor at blueyonder.co.uk
Twitter: @gm8arv 



More information about the time-nuts mailing list