Upræcis timer og upræcise events...
Hej Eksperter....Sidder og roder med en ret simpel applikation, som sender en "puls" ud på en serielport og sender en anden besked ud på en anden serielport. Pulsen er sat til et interval på 1 sekund, og beskeden på den anden port, kan forskydes fra 0 til 999 millisekunder (offset) af brugeren igennem GUI´en. F.eks. hvis den står på 0 kommer begge pulser samtidigt og hvis den står på 500 vil de komme forskudt.
Håber den forklaring gav mening...
Jeg tænkte at det var ret simpelt at lave med 2 timere, hvor den ene blev sat til ét sekund (interval=1000ms) og den sendte så pulsen ud og startede den anden timer, hvis interval var sat til den forskydelse brugeren havde sat (offsettet på 0 til 999 millisekunder). Den anden timer ville så sende beskeden ud på den anden serielport.
Det hele virker også ret godt, på nær at timeren ikke respekterer det interval man sætter den til i millisekunder.
Sættes den til 0, så venter den 15 sekunder.
Sættes den til 50, så venter den i 46 millisekunder.
Sættes den til 800, så venter den i 794 millisekunder.
Det virker som om at den springer i steps af 1/64 sekund ~ 15,63ms. Dette kan jo ikke accepteres, når brugeren skal kunne sætte den med 1 millisekunds nøjagtighed.
Har hørt om en Multimedia timer (som skulle have højere tidsopløsning), som jeg også har prøvet at benytte, men dette blev ikke meget bedre.
Dog skal det siges at Windows7 ser ud til at kunne håndtere det og er nede på millisekunds-præcision, men Windows XP inddeler stadig tiden i "pakker" af 15,63 sekunder!
Nogle gode forslag, tanker eller helt andre approaches?
Hilsen
Kasper