Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Zeigeber hoch frequenz...

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
funkeld
gesperrt


Anmeldungsdatum: 10.10.2009
Beiträge: 179

BeitragVerfasst am: 18.08.2010, 12:48    Titel: Zeigeber hoch frequenz... Antworten mit Zitat

Wie kann man den unteren Zeitgeber von Windows aus der Dll nutzen für Freebasic?
Danke.

Gruss

Code:

If QueryPerformanceFrequency_(@Frequency)
  QueryPerformanceCounter_(@Time_1) ; Zeit vor der Routine
 
  DoStuff()
 
  QueryPerformanceCounter_(@Time_2) ; Zeit nach der Routine
 
  Time.d = (Time_2 - Time_1) / Frequency * 1000 ; Umrechnung, *1000 Für Millisekunden
 
  Debug StrD(Time, 2) + " ms"
Else
  Debug "No high-resolution performance counter"
EndIf
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 18.08.2010, 13:55    Titel: Antworten mit Zitat

Hi,
meinst du so etwa?
Code:
#Include Once "windows.bi"

Dim As ULongInt Frequency, Time_1, Time_2, PTime

If QueryPerformanceFrequency(Cast( PLARGE_INTEGER, @Frequency)) Then
 QueryPerformanceCounter(Cast( PLARGE_INTEGER, @Time_1)) ' Zeit vor der Routine


 Sleep 100 'Do Stuff()

 QueryPerformanceCounter(Cast( PLARGE_INTEGER, @Time_2)) ' Zeit nach der Routine
 PTime = (Time_2 - Time_1) / Frequency * 1000 ' *1000 Für Millisekunden
 Print PTime  ; " ms"
Else
 Print "No high-resolution performance counter"
EndIf
Sleep

_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
funkeld
gesperrt


Anmeldungsdatum: 10.10.2009
Beiträge: 179

BeitragVerfasst am: 18.08.2010, 14:13    Titel: Antworten mit Zitat

Jup, danke.
Damit kann man eine höchste Zeitmessung durchführen habe ich gelesen.

Warum nimmst du Integer und keine Real?

Gruss
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 19.08.2010, 11:15    Titel: Antworten mit Zitat

Zitat:
Warum nimmst du Integer und keine Real?

Die Funktionen (Zähler) arbeiten mit 64Bit Integer, das Ergebnis der Zeitberechnung könnte man z.B. als DOUBLE ausgeben.
Code:
#Include Once "windows.bi"

Dim As LARGE_INTEGER Frequency, Time_1, Time_2
Dim As Double PTime

If QueryPerformanceFrequency(@Frequency) Then
 QueryPerformanceCounter(@Time_1) ' Startzeit


 Sleep 200 '"Do Stuff()"

 QueryPerformanceCounter(@Time_2) ' Endzeit
 PTime = (Time_2.QuadPart - Time_1.QuadPart) * 1000 / Frequency.QuadPart
 Print PTime ; " ms"
Else
 Print "No high-resolution performance counter"
EndIf
Sleep

_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz