2009-07-24 8 views
0

J'essaie d'exécuter le pseudo-code suivant à une vitesse de 10 microsecondes ou plus sur un ordinateur hôte (512 mb de RAM, Intel Pentium 4 de 2,5 GHz) processeur, etc.) fonctionnant sur un système d'exploitation Windows XP:Routine de service d'interruption de minuterie sur un ordinateur hôte fonctionnant à une vitesse de 10 microsecondes ou plus

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

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

Je suis conscient qu'il ya des MFC minuteries, mais ils ne sont pas fonctionnels si les minuteries doivent déclencher plus vite que 1 ms. Quelle serait la méthode la plus simple pour accomplir les objectifs de mon pseudocode? Merci d'avance.

Répondre

1

Je ne suis pas sûr que vous pouvez obtenir ce genre de performances de Windows XP, du moins pas de manière fiable à partir userland. Vous devrez peut-être exécuter votre code en tant que pilote de noyau, ou mieux encore en utilisant un système d'exploitation en temps réel comme Xenomai.

-1

Ignore - je mal lu micro comme milli dans la question Désolé: le MultiMedia Timer est

Comme vous dites que vous êtes sous Windows, le chemin à parcourir.

Ou le plus récent TimerQueue TimerQueue

Vous pouvez être en mesure d'obtenir la résolution de 1ms, en fonction de votre matériel.

Bonne chance

+0

Il peut être utile pour d'autres lecteurs si vous supprimez ce message. – stanigator