Autor Beitrag
mister_x
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 85

Win 98, WIN 2000, WIN XP PRO
Delphi 2006
BeitragVerfasst: Mo 08.10.07 15:50 
sers leute
ich brauch einen timer taktung<<1ms
also im µs oder ns bereich....
mit den standard timern kommt man ja nur auf 1ms runter

im net hab ich was über den Mutlimedia Timer von windows gelesen der soll um einiges schneller sein....
nur hab ich bis jetzt noch kein tut gefunden...
also meine frage kennt sich jemand damit aus oder kann mir jemand was anderes vorschlagen

Gruß Mister_X

_________________
Der Computer ist das genialste Produkt der menschlichen Faulheit
Kroko
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1284

W98 W2k WXP
Turbo D
BeitragVerfasst: Mo 08.10.07 15:52 
(a) brauchen kannst Du
(b) bekommen wirst du nicht
(c) nicht mal Windows kommt auf 1ms
(d) suche mal hier, die Frage gab es schon öfters

_________________
Die F1-Taste steht nicht unter Naturschutz und darf somit regelmäßig und oft benutzt werden! oder Wer lesen kann, ist klar im Vorteil!
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Mo 08.10.07 15:56 
wenn mir die frage erlaubt ist: wozu brauchst du überhaupt nen timer mit unter 1 ms??

lg elundril
mister_x Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 85

Win 98, WIN 2000, WIN XP PRO
Delphi 2006
BeitragVerfasst: Mo 08.10.07 15:59 
user profile iconelundril hat folgendes geschrieben:
wenn mir die frage erlaubt ist: wozu brauchst du überhaupt nen timer mit unter 1 ms??

lg elundril

zur datenübertragung an einem IO-Port

_________________
Der Computer ist das genialste Produkt der menschlichen Faulheit
covel
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 131

Win XP PRo
Borland D7/C#
BeitragVerfasst: Mo 08.10.07 16:29 
Hi,

ich brauchte sowas ähnliches für eine oszilloskop-funktion, habe eine "Endloss-Schleife" benutzt. Vielleicht hilft dir das ja weiter...
Sidorion
ontopic starhalf ontopic starofftopic starofftopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 63



BeitragVerfasst: Mo 08.10.07 17:22 
Versuchs mal mit QueryPerformanceFrequency im FormCreate und im Application.OnIdle mit QueryPerformanceCounter. Mit ersterem kriegst Du Ticks/sekunde, mit letzterem aktuelle Tickzahl. Jetzt kannst Du nach einer bestimmten Tickzahl ein Signal senden. Aber Vorsicht: im OnIdle musst Dudann Done auf false setzten und deine CPU-Last springt auf 100% (andere Prozesse kommen trotzdem dran).
p.s. Bei Mehrprozessor(Kern) Systemen musst Du Deine Anwendung auf einen Prozessor festnageln, da die einen unterschiedlichen tickcount haben.
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Mo 08.10.07 17:30 
Wegen eines Hinweises meines Infp-Professors:

www.torry.net/quicks...=hires&Title=Yes

ein timer mit unter 1 ms! viel spass damit!

lg elundril
Reinhard Kern
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 591
Erhaltene Danke: 14



BeitragVerfasst: Mo 08.10.07 19:13 
user profile iconmister_x hat folgendes geschrieben:
sers leute
ich brauch einen timer taktung<<1ms
also im µs oder ns bereich....
mit den standard timern kommt man ja nur auf 1ms runter

im net hab ich was über den Mutlimedia Timer von windows gelesen der soll um einiges schneller sein....
nur hab ich bis jetzt noch kein tut gefunden...
also meine frage kennt sich jemand damit aus oder kann mir jemand was anderes vorschlagen

Gruß Mister_X


Dazu braucht man professionelle Hardware, z.B. einen Universalzähler. Für ein Softwaresystem nicht realisierbar, und mit Windows noch weniger als garnicht, da können schon die Sekunden unzuverlässig sein (ist bei Linux nicht anders).

Gruss Reinhard
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Mo 08.10.07 22:50 
HAALLLLLOOO! Guckts ihr vielleicht mal auf den link. da steht doch eindeutig was anderes oder??

lg elundril
Kroko
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1284

W98 W2k WXP
Turbo D
BeitragVerfasst: Di 09.10.07 04:20 
user profile iconelundril hat folgendes geschrieben:
HAALLLLLOOO! Guckts ihr vielleicht mal auf den link. da steht doch eindeutig was anderes oder??

lg elundril

Gucken schon, nur fehlt mir der Glaube daran!

_________________
Die F1-Taste steht nicht unter Naturschutz und darf somit regelmäßig und oft benutzt werden! oder Wer lesen kann, ist klar im Vorteil!
OlafSt
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 486
Erhaltene Danke: 99

Win7, Win81, Win10
Tokyo, VS2017
BeitragVerfasst: Di 09.10.07 13:07 
Dieser "HRTimer" ist noch immer dem Scheduler von Windows unterworfen. Findet also eine Nanosekunde vor Ablauf der Wartezeit ein Taskwechsel statt, dann gibts eben keinen Event, bis der Scheduler wieder dem Prozess ein neues Stück von der Zeitscheibe zuweist - wann immer das sein mag. Der Timer ist also ebenso ungenau wie jeder andere auch.

Windows ist KEIN RT-Betriebssystem, derartige Timerauflösungen sind nur mit Tricks zu machen (Realtime-Prio's und so weiter), die den Rest des Systems schier unbenutzbar machen. Besser ist es, das Timern einem Stück Hardware zu überlassen (Einsteckkarte, µC oder ähnliches) und Windows nur die Anzeige zu überlassen.

_________________
Lies, was da steht. Denk dann drüber nach. Dann erst fragen.
Carla
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 111
Erhaltene Danke: 2



BeitragVerfasst: Di 09.10.07 13:20 
user profile iconOlafSt hat folgendes geschrieben:
Besser ist es, das Timern einem Stück Hardware zu überlassen (Einsteckkarte, µC oder ähnliches) und Windows nur die Anzeige zu überlassen.


Na ganz stimmt das so auch nicht.
Es gibt schon Software, welche einen hochgenauen Timer und Echtzeitbetrieb auch unter Windows zuläßt.
Nur ist das nicht ganz billig.
Ich habe in einer Anwendung unter anderen einen 1 ms Task laufen. Dieser arbeitet hochgenau. Läuft unter Windows (XP) in der SoftSPS von Beckhoff.
Für Bastelzwecke kann man sich die Demo der SoftSPS laden, die läuft 30 Tage.
Programmierbar in Strukturierten Text - das ist ein Pascaldialekt.
Ein weiteres Tool wird von Kitiara-Software oder so ähnlich angeboten.
Hier wird, ebenfalls unterhalb von Windows ein Timer getaktet, welcher in vorgegebenen Zyklen die eigene Software ruft.
Mit Windows-API sollte man in dieser Software dann aber tunlichst nicht arbeiten.

Gruß
Carla
Reinhard Kern
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 591
Erhaltene Danke: 14



BeitragVerfasst: Di 09.10.07 18:15 
user profile iconCarla hat folgendes geschrieben:

...
Ich habe in einer Anwendung unter anderen einen 1 ms Task laufen. Dieser arbeitet hochgenau. Läuft unter Windows (XP) in der SoftSPS von Beckhoff.
...
Gruß
Carla


Hallo Carla,

bist du wirklich sicher, dass das so ist wie du es beschreibst? Normalerweise ist es bei industriellen Lösungen umgekehrt: Windows läuft als Task unter einem Echtzeitsystem, und zwar mit niedriger Priorität - so kann Windows nicht die Interrupt-Routinen des Echtzeitsystems behindern.

Ein Echtzeitsystem kann schon Zeitauflösungen im Bereich µsec erreichen, für nsec braucht man aber doch Hardware.

Gruss Reinhard
Carla
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 111
Erhaltene Danke: 2



BeitragVerfasst: Mi 10.10.07 08:58 
user profile iconReinhard Kern hat folgendes geschrieben:


bist du wirklich sicher, dass das so ist wie du es beschreibst? Normalerweise ist es bei industriellen Lösungen umgekehrt: Windows läuft als Task unter einem Echtzeitsystem, und zwar mit niedriger Priorität - so kann Windows nicht die Interrupt-Routinen des Echtzeitsystems behindern.

Ein Echtzeitsystem kann schon Zeitauflösungen im Bereich µsec erreichen, für nsec braucht man aber doch Hardware.

Gruss Reinhard


Ja eine SoftSPS liegt unterhalb von Windows und wird von einem Hardwaretimer getriggert.
Die Jitterzeiten sind garantiert konstant.
Wie bei einer SPS üblich, können Task mit unterschiedlichen Zykluszeiten definiert werden.
Die kürzest mögliche Zeit liegt unter 10 µsec.
Interessant ist, das bei einer relativ ausgelasteten SPS (das Teil steuert einen Prüfstand) kaum Performance-Einbrüche in
Windows zu bemerken sind.
Heute verwende ich diese Technik jedoch nicht mehr. Zum gleichen Preis wie die SoftSPS - Software, erhält man heute bereits
eine Hardware Mini-SPS. Das vereinfacht die Entwicklung erheblich und macht die Anwendung sicherer.

Gruß
Carla