Dann schalt mal den Debugger aus und ersetze dieses
Code: Alles auswählen
...
MessageRequester("NoDebug","Zeit: " + StrQ(result) )
...
Bei mir liegt das dann 5-6µs minimal darüber.
korrigiert auf : DELAYUS(95)
komme ich nach Zehn Tests auf genau 100µs, also 0 Abweichung.
[Edit] Wenn ich dann aber folgendes in eine Exe compiliere und dann teste, kommen bei mir Abweichungen bis ca. 6µs was aber hierbei mit
Windowsdiensten, etc. zusammen hängt.
Code: Alles auswählen
; Author: chrizl
; SecendAuthor: mk-soft
; Source: German Pureboard
Procedure DELAYUS(t.l)
Protected hitimefreq.q, hitimecount1.q, hitimecount2.q, hitimediff.q, hitimemax.q
QueryPerformanceFrequency_(@hitimefreq)
hitimemax = hitimefreq * t / 1000000
QueryPerformanceCounter_(@hitimecount1)
Repeat
QueryPerformanceCounter_(@hitimecount2)
hitimediff = hitimecount2 - hitimecount1
Until hitimediff >= hitimemax
EndProcedure
For i = 0 To 10
;Debug "Start"
QueryPerformanceCounter_(@start.q)
DELAYUS(95)
QueryPerformanceCounter_(@ende.q)
;Debug "Ende"
QueryPerformanceFrequency_(@freq.q)
result.q = (ende-start)
result * 1000000
result / freq
MessageRequester("NoDebug","Zeit: " + StrQ(result) )
DELAYUS(95)
Next i
Gruß Falko