Timer-Interrupt-Service-Routine auf einem Host-Computer läuft mit einer Geschwindigkeit von 10 Mikrosekunden oder schneller
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.
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