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: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: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: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 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:Soweit sie dem gemeinsamen Nenner entsprechen. Zitat: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. |