Autor Beitrag
Ice
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 114



BeitragVerfasst: Di 27.05.03 19:21 
Hallo Leute,

ich habe da ein Problem mit der timer Komponente und zwar benötige ich ein Interval von 200 ns und bei der Timer komponente ist das kleinste intervall 1 ms wenn ich mich nicht irre?
Könnt ihr mir da helfen?
Vielen dank im voraus!
mfg
Ice
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Di 27.05.03 19:43 
Hallo!

Ich kann Dir da keine Lösung angeben, jedoch würde ich davon abraten, ein so kurzes Intervall zu verwenden. Als Beispiel:

Mein Rechner arbeitet mit ca. 1,7GHz. Das entspricht einer Taktlänge von ca. 60ns. Bei einem Rechner, der etwas langsamer ist, kann es noch länger sein. Zusammen mit all den anderen Prozessen, die in der CPU abgearbeitet werden, ist es höchst zweifelhaft, ob Du ein Zeitintervall von 200ns zuverlässig verwenden kannst. Windows kann ja selbst die "normalen" Intervalle nicht garantieren!

MfG,
Peter

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
obbschtkuche
Gast
Erhaltene Danke: 1



BeitragVerfasst: Di 27.05.03 20:27 
Auf meinem Athlon XP 2000+ Schaff' ich gerade mal 10 ms...

Wenn du so wenig wie möglich willst, ´guck mal in der OnlineHilfe nach SetTimer. Da kann man dann das Intervall auf 0 setzen.
mars
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 238

Debian Woody, Win 2000, Win XP
D7 Ent, Kylix 3
BeitragVerfasst: Di 27.05.03 20:52 
Vielleicht verratest du uns, was du genau machen willst? Möglicherweise gibts dann eine bessere Variante.
Ice Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 114



BeitragVerfasst: Mi 28.05.03 10:36 
Ich möchte gerne die RTS leitung meines Com Ports für 200ns auf 1 setzen danach soll sie wieder auf 0 gehen, das brauche ich um ein Reset auf dem angeschlossenen Gerät auszulösen, ich bin mir nicht ganz sicher ob das auch mit 1 ms funktioniert, werde das mal ausprobieren.
Vielen dank für die schnellen Antworten.

mfg
Ice
Sven
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 314


D6 Ent, K3 Pro (patched)
BeitragVerfasst: Mi 28.05.03 11:32 
Ich habe mal von einer Timer-Komponente gehört/gelesen die 1ns schaffen soll. Schau mal torry nach. Dort könntest Du fündig werden.

Sven

_________________
MDK 9.1, Kernel 2.4.21, KDE 3.1 Kylix 3 Pro (patched), nutze aber auch Windows
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 28.05.03 13:10 
Zum ständigen Abfragen von Informationen soll man sowieso keine Timer benutzen. Threads lasten das System dabei wesentlich geringer dabei aus.
Adrian
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 314



BeitragVerfasst: Mi 28.05.03 18:58 
Hallo,

vielleicht hilft Dir das weiter:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
procedure Warte(us : Longint);
var
  Aufloes, QueryStart, QueryStop : TLargeInteger;
  Dauer : Real;
begin
  QueryPerformanceFrequency(Aufloes);
  QueryPerformanceCounter(QueryStart);
  repeat
    QueryPerformanceCounter(QueryStop);
    Dauer:=(QueryStop-QueryStart)/Aufloes;
  until Dauer>=us;
end;

Allerdings bezweifle ich, daß 200 ns erreichbar sind.

Gruß,

Adrian
mars
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 238

Debian Woody, Win 2000, Win XP
D7 Ent, Kylix 3
BeitragVerfasst: Do 29.05.03 14:18 
Mit QueryPerformanceCounter sind etwas abhängig von der Systemuhr bis zu einer Millionstel Sekunden möglich; das sollte also ausreichen.
TheD
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 27



BeitragVerfasst: Fr 30.05.03 23:07 
mars hat folgendes geschrieben:
Mit QueryPerformanceCounter sind etwas abhängig von der Systemuhr bis zu einer Millionstel Sekunden möglich; das sollte also ausreichen.

Und das auf einem Windows-System?
:lol: :lol: :lol:

_________________
Bis dannn... TheD!
Wer im Schlachthaus sitzt, sollte nicht mit Schweinen werfen! ;)
mars
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 238

Debian Woody, Win 2000, Win XP
D7 Ent, Kylix 3
BeitragVerfasst: Sa 31.05.03 10:14 
Ich habe nicht gesagt, dass diese Zeiten wirklich etwas über die Performance einer Prozedur aussagen oder sich zum genauen Zeitmessen eignen, aber die genannte Funktion bringt dir wirlich so genaue Werte :!:
Ice Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 114



BeitragVerfasst: So 01.06.03 19:28 
:D Vielen Dank für die vielen schnellen Antworten!
Ich habe es zwar nicht gelöst aber ich habe einfach den Timer auf die kleinste mögliche Periode eingestellt(0) und es funktioniert! 8)

Also vielen dank nochmal an alle...
mfg

Ice