Frage

Ist es möglich, für einen Betrag von Zeit zu schlafen, die genau auf weniger als 100 Mikrosekunden auf Windows CE sein? Je weniger Jitter, desto besser -. Im Idealfall würden wir einstelligen Mikroreaktionszeiten wie

Was wir wirklich wollen, sind ein 5 ms-Timer mit sehr geringen Jitter - obwohl die Windows CE WaitFor [Single | Multiple] Objekte und Schlaf-APIs in Einheiten von Millisekunden arbeiten, können wir dann nicht richtig für die Sub-ms-Zeit unseres Code kann dauern laufen, so würde der Zyklus allmählich driftet.

Wenn dies nicht möglich ist, werden diese Informationen würden auch sehr hilfreich sein.

War es hilfreich?

Lösung

dieser MSDN-Artikel hat einige Codes einen 500us einzurichten Timer-Interrupt in WinCE, so ist es durchaus möglich.

Wenn Sie nicht in Ihrer Version von WinCE gesperrt sind, könnten Sie in aussehen wollen Tenasys , der behauptet, eine RTOS Lauf Side-by-Side mit Windows auf Standard-Hardware bieten.

Ich habe auch gute Dinge über QNX gehört, aber ich habe ihre Produkte entweder nicht verwendet. Ich glaube nicht, es ist von Windows in irgendeiner Weise kompatibel, jedoch.

Andere Tipps

Es ist nicht möglich. Es ist nicht einmal möglich, auf Desktops. Typische Betriebssysteme einfach nicht auf diese Weise funktionieren.

Wenn das, was Sie brauchen, um etwas genau alle 4 Millisekunden Feuer oder was auch immer Sie kein Glück. Wenn das, was Sie wirklich brauchen, ist etwas Feuer genau 250 Mal pro Sekunde, die mehr machbar sein kann. Wenn Sie in der Notwendigkeit der letzteren sind kann ich einen Ansatz vor.

Wenn Ihre Notwendigkeit zu schlafen ist nicht eine Batterie / Thread-Yield-Ausgabe und nur eine Frage des genauen Timing, können Sie die „Performance“ in Windows CE-Geräten verwenden. Auf XScale und Qualcomm CPUs, das ist der interne Timer-Chip und hat sub 1-ms-Granularität. Auf älteren OMAP und Samsung-Prozessoren ist die Performance API durch die Zecke 1ms System vorbei und hat viele Jitter.

L.B.

, um den Jitter korrigieren müssen Sie den Zugriff auf eine hochauflösende Timer. Die CPU Sie haben eine haben. Wenn nicht, wird der Interrupt-Controller kann.

Der einfachste Weg ist, ein Linux mit Echtzeit und WINE Ihren Weg in diese Bibliothek zu verwenden. Sie wollen einen periodischen Thread.

einen Blick auf diesen Bericht von NIST nehmen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top