Seite 3 von 3
Re: Delay kleiner als millisekunde
Verfasst: 23.08.2013 19:20
von Wolfram
Da ich absoluter Anfänger bin, die Frage wie würden denn der Code aussehen wenn ich
eine Schleife haben möchte die alle 300µs eine SerialPortRead ausführt.
Danke
Gruß
Wolfram
Re: Delay kleiner als millisekunde
Verfasst: 23.08.2013 19:35
von STARGÅTE
Ich hoffe du möchtest damit keine Daten senden oder empfangen, denn dafür gibt es ja OpenSerialPort() wo du eine Lese/Schreib-Geschwindigkeit angeben kannst.
Ansonsten zB mit der DelayMicroSeconds() Funktion:
Code: Alles auswählen
Global QueryPerformanceFrequency.q, QueryPerformanceFactor.f
QueryPerformanceFrequency_(@QueryPerformanceFrequency)
QueryPerformanceFactor = 1e6/QueryPerformanceFrequency
Procedure DelayMicroSeconds(Time.q)
Protected StartTime.q, EndTime.q
QueryPerformanceCounter_(@StartTime)
Repeat
Delay(0)
QueryPerformanceCounter_(@EndTime)
Until (EndTime-StartTime)*QueryPerformanceFactor > Time
EndProcedure
a = ElapsedMilliseconds()
For n = 1 To 1000
DelayMicroSeconds(300)
Next
Debug ElapsedMilliseconds()-a
Hier wird 1000 mal 300µs gewartet, was also 300ms entspricht.
Hier dann eine Anwendungsmöglichkeit.
Code: Alles auswählen
Repeat
DelayMicroSeconds(300)
GetSerialPortStatus(#SerialPort, #PB_SerialPort_CTS)
ForEver()