USleep() oder UDelay()
Übersicht

![]() |
MidimasterBetreff: USleep() oder UDelay() |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich würde gerne auf einem alten BlitzMax 1.50 die UDELAY() Function im Microsekundenbereich nutzen, wie sie unter BlitzMax NG zur Verfügung steht.
Hat da jemand schon mal was damit gemacht? Inzwischen habe ich rausgefunden, das zwar die C-funktion usleep() angesprochen werden kann, aber die wartet egal welchen Wert man eingibt immer 2000 microsekunden (=2msec) Dieser Test.... BlitzMax: [AUSKLAPPEN] Extern "C" ...gibt leider 20msc zurück. 10x aufgerufen a 2msec=20msec. Egal ob man die PRINT Zeile drin läßt oder nicht. Egal ob man 50 als Wert übergibt oder jede beliebige Zahl von 1 bis 1999. Immer dauert es 20msec. |
||
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe |
![]() |
coolo |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich habe mit diesen Funktionen in BlitzMax noch nichts gemacht, aber rein aus konzeptioneller Sicht wird es in diesen Zeitintervallen schwierig sein genau zu stoppen, weil der Scheduler vom Betriebssystem defacto beliebig das Programm pausieren kann um andere Programme Priorität zu gewähren (es sei denn du lässt es auf einem Realtime Linux laufen, was ich eher bezweifle).
Du könntest vielleicht alternativ busy waiting versuchen, welches eine leere Schleife beinhaltet die manuell überprüft ob die gewünschte Zeit vergangen ist. Das ist halt resourcenintensiver. Ansonsten, ich weiß nicht wie BlitzMax das handhabt, aber usleep ist normalerweise ein Unsigned Int. LG, coolo |
||
http://programming-with-design.at/ <-- Der Preis ist heiß!
That's no bug, that's my project! "Eigenzitate sind nur was für Deppen" -Eigenzitat |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group