salut,
Je suis d'accord avec Nasman et Patalo.
Tout d'abord, la solution de faire une boucle précalculée en cycles d'horloge est peu envisageable. Car avec les processeurs modernes (Pentium, Athlon ...), le cache et la parallélisation des instructions dans les pipelines d'exécution, rendent trés difficile l'estimation exacte en terme de cycles d'horloge. Seule une méthode empirique par essais successifs peut permettre de s'en sortir.
Ensuite, cette méthode de boucle ne peut être valide que si on invalide toute interruption, car on a de forte chance d'être préempté par le scheduler de tâches (que ce soit sous windows ou linux) pendant la boucle et donc fausser notre timing. Mais le fait d'invalider les IT pendant notre 'sleep' va geler notre OS.
Puis il y a la solution de l'interruption du timer qui semble plus élégant. Mais sans passer par l'OS, c'est à dire en utilisant le timer hardware, on va interferer avec les interruptions périodiques du timer servant à l'ordonnanceur de tâches (scheduler) de l'OS. On ne peut donc pas vraiment considerer cette solution comme envisageable sauf si on accepte de 'geler' le système pendant notre chrono.
Pour terminer, reste la solution qui consiste à 'endormir notre tâche jusqu'à la prochaine periode de l'ordonnanceur de tâche. Mais on devient alors, trés lié à l'OS puisqu'on utilise la gestion du multitâche pour rescheduler notre process.
Je ne pense pas qu'il y ait de solution vraiment simple .... sauf à réaliser l'opération sur microcontrolleur type PIC16Cxx et sans OS et seul au monde

.
Gentoo... que du bonheur ...