Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Borland C++ Builder » Timer läuft ungenau (bcb5)

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
09.03.2003, 00:15 Uhr
~Berni
Gast


Hi,

hab ein kleines Problem mit einem Timer, er soll genau alle 10 ms aufgerufen werden, die Funktion, die der Timer aufruft spricht einen D/A Wandler am PCI-Bus an, das funktionier soweit ganz gut

Um zu testen ob er genau ist hab ich Ihn mal auf 1 ms gestellt und eine Sekunde laufen lassen, dabei wurde er gerade mal 360 mal aufgerufen,
an Rechenpower mangelt es auch nicht

an was kann das liegen?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
09.03.2003, 09:59 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo Berni,
der std. Timer holt sich seine Werte von der Systemzeit. Diese hat eine Genauigkeit von ca. 15-30 ms. Was Du machen kannst, ist Dir mit Hilfe des hochauflösenden Peformance-Zählers Deines Rechners (wenn Du einen älteren hast, welcher so ein Teil nicht hat - Pech) eine Funktion zuschreiben. Der Performance Counter ist in der Hardware des Rechners implementiert, seine Frequenz liegt zwischen 0,1 und > 3,1 MHz. Mit den API-Calls QueryPerformanceCounter() und QueryPerformanceFrequency() hast Du Zugriff auf Diesen.
--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe

Dieser Post wurde am 09.03.2003 um 13:41 Uhr von Uwe editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
05.04.2003, 14:59 Uhr
~Heiko
Gast


genau, das funktioniert echt geil.
Hier ein kleines Beispiel:

int main(){
LONGLONG Frequency, CurrentTime, LastTime;
double TimeElapsed, TimeScale;

QueryPerformanceFrequency( (LARGE_INTEGER*) &Frequency);
TimeScale = 1.0/Frequency;

QueryPerformanceCounter( (LARGE_INTEGER*) &LastTime);

//irgendwas machen



QueryPerformanceCounter( (LARGE_INTEGER*) &CurrentTime);

TimeElapsed = (CurrentTime - LastTime) * TimeScale;

printf("\nTime elapsedt%f\n",TimeElapsed);

return 0;
}


wenn du es noch genauer brauchst (zeitmässig meine ich jetzt) soll es von ElTec eine lib geben, die das sogar auf nano sec genau macht. (wers glaubt)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
05.12.2004, 13:46 Uhr
~ich
Gast


hi
ich wollte die progressbar bei c++ builder zum laufen bringen
bitte helft mir
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
05.12.2004, 17:21 Uhr
Bruder Leif
dances with systems
(Operator)


Moin!

Mach dafür bitte einen neuen Thread auf. Dann erhöht sich die Wahrscheinlichkeit, daß Dir jemand antwortet.
--
Mit 40 Fieber sitzt man nicht mehr vor dem PC.
Man liegt im Bett.
Mit dem Notebook.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
12.12.2004, 13:07 Uhr
~ich
Gast


ich bin aber gast!!![marquee]leider [\marquee]
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
12.12.2004, 13:19 Uhr
~ich
Gast


sorry ich wusste nich ob man auch als gast ein Threadauf machen kann





 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
20.11.2005, 22:39 Uhr
~frequence
Gast



Zitat von ~Heiko:
genau, das funktioniert echt geil.
Hier ein kleines Beispiel:

int main(){
LONGLONG Frequency, CurrentTime, LastTime;
double TimeElapsed, TimeScale;

QueryPerformanceFrequency( (LARGE_INTEGER*) &Frequency);
TimeScale = 1.0/Frequency;

QueryPerformanceCounter( (LARGE_INTEGER*) &LastTime);

//irgendwas machen



QueryPerformanceCounter( (LARGE_INTEGER*) &CurrentTime);

TimeElapsed = (CurrentTime - LastTime) * TimeScale;

printf("\nTime elapsedt%f\n",TimeElapsed);

return 0;
}


wenn du es noch genauer brauchst (zeitmässig meine ich jetzt) soll es von ElTec eine lib geben, die das sogar auf nano sec genau macht. (wers glaubt)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Borland C++ Builder ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: