Timer-Interrupt-Service-Routine auf einem Host-Computer läuft mit einer Geschwindigkeit von 10 Mikrosekunden oder schneller

StackOverflow https://stackoverflow.com/questions/1175164

  •  19-09-2019
  •  | 
  •  

Frage

Ich versuche, den folgenden Pseudo-Code mit einer Rate von 10 Mikrosekunden oder schneller auf einem Host-Computer (512 MB RAM, Intel 2,5 GHz Pentium 4 Prozessor, etc.) auf einem Windows XP-Betriebssystem ausgeführt wird:

int main(void)
{
    while(1){};
}

Interrupt service routine:
every 10 microseconds, printf("Hello World");

Ich bin mir bewusst, dass es MFC Timer sind, aber sie sind nicht funktionsfähig, wenn die Timer schneller auslösen müssen als 1 ms. Was wäre die einfachste Methode, um zu erreichen, was die Ziele meiner Pseudo-Code? Vielen Dank im Voraus.

War es hilfreich?

Lösung

Ich bin mir nicht sicher, dass Sie diese Art von Leistung aus Windows XP erhalten können, zumindest nicht zuverlässig von Userland. Sie könnten Ihren Code als Kernel-Treiber laufen müssen, oder besser noch zu untersuchen, anstatt ein Echtzeit-Betriebssystem wie Xenomai verwendet wird.

Andere Tipps

Ignorieren dieses - ich falsch gelesen Mikro als milli in der Frage tut uns leid:

Wie Sie sagen, Sie auf Windows verfügbar sind, die MultiMedia Timer ist der Weg zu gehen.

oder die neuere TimerQueue TimerQueue

Sie können können 1ms Auflösung erhalten, abhängig von Ihrer Hardware.

Good Luck

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