amiga-news ENGLISH VERSION
.
Links| Forum| Kommentare| News melden
.
Chat| Umfragen| Newsticker| Archiv
.

amiga-news.de Forum > Programmierung > AmigaOS: Zeitmessung in Millisekunden auch ohne timer.device möglich? [ - Suche - Neue Beiträge - Registrieren - Login - ]

-1- [ - Beitrag schreiben - ]

15.03.2011, 15:04 Uhr

Reth
Posts: 1858
Nutzer
Hallo zusammen,

das Thema sagt eigentlich schon alles. Da die Auflösung der time()-Funktion leider nur im Sekundenbereich liegt, bin ich derzeit auf der Suche nach Alternativen mit höherer Auflösung (Millisekunden).

Eine davon wären zwar die INTUITICKS, die scheiden für mich aber aus.

Gibt es noch weitere Alternativen, ohne die Nutzung des Timerdevices, um verstrichene Zeiten in Millisekunden zu messen?

Danke schon mal!

Ciao

[ - Antworten - Zitieren - Direktlink - ]

15.03.2011, 16:24 Uhr

ZeroG
Posts: 1487
Nutzer
@Reth:
In OS4 gibts noch ITimer->MicroDelay() was einfach zu benutzen ist, aber das Ding benutzt polling und ist für Treiber gedacht die sehr kurz warten möchten während das Multitasking gerade unterbrochen ist (z.B. in einem Interrupt).

[ - Antworten - Zitieren - Direktlink - ]

15.03.2011, 16:31 Uhr

thomas
Posts: 7718
Nutzer
@ZeroG:

Die Frage war nach messen, nicht nach warten.


@Reth:

Alles was mit Zeit zu tun hat, landet früher oder später im timer.device, ob explizit oder implizit. Was hast du gegen das timer.device?

GetSysTime() und SubTime() sind vermutlich das, was du suchst.

Gruß Thomas

--
Email: thomas-rapp@web.de
Home: thomas-rapp.homepage.t-online.de/

[ - Antworten - Zitieren - Direktlink - ]

15.03.2011, 18:39 Uhr

huepper
Posts: 481
Nutzer
Eventuell suchst du so was hier ?

Klick
--
Amiga-fähige Computer ;)

[ - Antworten - Zitieren - Direktlink - ]

15.03.2011, 20:10 Uhr

Holger
Posts: 8116
Nutzer
Zitat:
Original von Reth:
Gibt es noch weitere Alternativen, ohne die Nutzung des Timerdevices, um verstrichene Zeiten in Millisekunden zu messen?

Was versprichst Du Dir denn von den Alternativen?

Leichter als die von thomas genannten Funktionen, die wie gewöhnliche Library-Funktionen aufgerufen werden, kann auch keine Alternative werden.

Also, was hättest Du gerne?

--
Good coders do not comment. What was hard to write should be hard to read too.

[ - Antworten - Zitieren - Direktlink - ]

15.03.2011, 21:45 Uhr

Reth
Posts: 1858
Nutzer
@Holger:

Die von Thomas genannten Funktionen sind genau die Gesuchten. Hatte bisher nur time() und difftime() gefunden.

Muss man für die von Thomas genannten Funktionen das timer.device öffnen, oder reicht ein include?

[ - Antworten - Zitieren - Direktlink - ]

15.03.2011, 23:16 Uhr

Holger
Posts: 8116
Nutzer
Zitat:
Original von Reth:
Muss man für die von Thomas genannten Funktionen das timer.device öffnen, oder reicht ein include?

Gleiche Regel wie für Library-Calls: selbstverständlich musst Du vorher öffnen.

--
Good coders do not comment. What was hard to write should be hard to read too.

[ - Antworten - Zitieren - Direktlink - ]

15.03.2011, 23:54 Uhr

Reth
Posts: 1858
Nutzer
Zitat:
Original von Holger:
Gleiche Regel wie für Library-Calls: selbstverständlich musst Du vorher öffnen.

Schade, hatte auf ein einfaches Include wie für time() gehofft.

Bei Devices bin ich mir etwas unsicher, v.a., was die Kompatibilität für verschiedene Systeme anbelangt (AOS3.9, 4.x, MOS, AROS). Von den Emulatoren mal abgesehen. Bei Libraries denke ich eher, dass sie auf allen Plattformen und unter allen Systemen ähnlich/gleich funktionieren. Aber ob alle Plattformen/Systeme auch identische Devices anbieten und weiter anbieten werden, stelle ich mir im Vgl. zu Libraries schwieriger vor (nicht gerade beim timer.device, aber generell). Oder hab ich hier ein Verständnisproblem?

[ - Antworten - Zitieren - Direktlink - ]

16.03.2011, 08:25 Uhr

Thore
Posts: 2266
Nutzer
Kannst ja ein define basteln :D
Ich find LibCalls aufzurufen recht elegant und einfach. In C sowieso weil die richtige LibBase automatisch nach a6 kopiert wird, und man sich um nix weiteres kümmern muss als seinen Funktionsaufruf.

Die Devices funktionieren "von außen" gleich auch wenn sie intern anders sind. Das muss auch so sein um ein cross compiling zu ermöglichen.
Sind Devices speziell für bestimmte Hardware ausgelegt, dann findest Infos darüber in den Docs.

[ Dieser Beitrag wurde von Thore am 16.03.2011 um 08:26 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]

16.03.2011, 16:12 Uhr

Holger
Posts: 8116
Nutzer
Zitat:
Original von Reth:
Bei Libraries denke ich eher, dass sie auf allen Plattformen und unter allen Systemen ähnlich/gleich funktionieren.

Soweit sie dem gemeinsamen Nenner entsprechen.
Zitat:
Aber ob alle Plattformen/Systeme auch identische Devices anbieten und weiter anbieten werden, stelle ich mir im Vgl. zu Libraries schwieriger vor (nicht gerade beim timer.device, aber generell).
Aber welches andere device brauchst Du denn jetzt?

--
Good coders do not comment. What was hard to write should be hard to read too.

[ - Antworten - Zitieren - Direktlink - ]

18.03.2011, 13:11 Uhr

Thore
Posts: 2266
Nutzer
> Oder hab ich hier ein Verständnisproblem?

Allerdings. Libs die nicht hardwarenah arbeiten, können teilweise oder ganz direkt portiert werden.
Devices hingegen können auf verschiedener Hardware nicht 1:1 portiert werden, wenn diese sich unterscheidet. Und selbst bei gleicher Komponente gibt es noch Faktoren wie Adressbereiche die sich unterscheiden können.
Was man allerdings in vielen Fällen machen kann ist die API gleichzuhalten, die Funktionsaufrufe sind dann identisch und das jeweilige Device macht dann äquivalente Aufgaben auf den unterschiedlichen Maschinen, die intern aber ganz anders funktionieren können.
Für den Benutzer sieht es dann aus als waren beide identisch.
Ein gegenseitiges Austauschen der Devices ist aber da nicht möglich. (Bei Libs gehts ja meistens z.B. zwischen OS3 und MorphOS)

Bei Hardware für die es keinen Ersatz gibt gibt es dann eben das entsprechende device auch nicht auf der anderen Maschine.

[ - Antworten - Zitieren - Direktlink - ]

21.03.2011, 21:10 Uhr

Reth
Posts: 1858
Nutzer
Danke für eure Antworten.

Brauche bisher keine anderen Devices. Wollte eigentlich ganz ohne auskommen!

Eine generelle Frage noch: Sollte ich das Device immer für jeden Aufruf öffnen und schließen, oder ist es bei Dauerbenutzung (z.B. für Logging, Zeitdifferenzbestimmungen usw.) besser das Device zu Beginn zu öffnen und erst am Ende wieder zu schließen?

[ - Antworten - Zitieren - Direktlink - ]

21.03.2011, 21:16 Uhr

Thore
Posts: 2266
Nutzer
> Eine generelle Frage noch: Sollte ich das Device immer für jeden Aufruf öffnen und schließen, oder ist es bei Dauerbenutzung (z.B. für Logging, Zeitdifferenzbestimmungen usw.) besser das Device zu Beginn zu öffnen und erst am Ende wieder zu schließen?

Das Device arbeitet intern von der OS-Struktur wie eine Lib. Du kannst es gerne zu Beginn öffnen und dann am Ende schließen.
Ein Hardware-Lock wird in der Regel nur beim Ausführen bestimmter Hardwarezugriffe gemacht. Dein Device bis zum Ende des Programms offen zu halten ist daher sicher. Da ist praktisch dann nur der Programmcode der Device-Datei im Speicher ähnlich wie bei einer Lib.

[ - Antworten - Zitieren - Direktlink - ]


-1- [ - Beitrag schreiben - ]


amiga-news.de Forum > Programmierung > AmigaOS: Zeitmessung in Millisekunden auch ohne timer.device möglich? [ - Suche - Neue Beiträge - Registrieren - Login - ]


.
Impressum | Datenschutzerklärung | Netiquette | Werbung | Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten.
.