Article View: fr.comp.lang.c
Article #15515Re: Delai en 100 eme de ms universel
From: Alcor
Date: Sat, 24 Sep 2005 06:26
Date: Sat, 24 Sep 2005 06:26
64 lines
3867 bytes
3867 bytes
> >Comment obtenir des poses de l'ordre du 100 eme de milli seconde ( 0.01
ms ) en Turbo C sous Dos avec un r�sultat constant quelque soit la
puisasnce du PC utilis� ?
> >
> >La commande delai(1) permet d'avoir une delai de 1 milliseconde .
Impossible de dessendre en dessous via cette commande
si tu as le source de la fonction delay, regarde comment elle est
construite.
en borland pascal par exemple
lors de l'initialisation de l'unit� CRT, une boucle quantifie la vitesse du
processeur et stocke une variable qui servira ensuite � corriger la boucle
du delay. il existe de nombreux patches de cette unit� car si le pc est
trop rapide, on a une division par z�ro.
la routine d'origine en assembleur, comptait un nombre fixe d'itt�rations
et chronom�trait l'op�ration avec l'horloge temps r�el. lors du delay, le
nombre de tours de boucle �tait � diviser par le r�sultat de la
quantification.
seulement combien de temps faut-il pour compter jusqu'� 65536 en
millisecondes ? z�ro !
personnellement, j'utiliserait l'approche inverse : on boucle pendant un
temps fixe et on regarde jusqu'o� on est arriv� � compter. ce nombre sera
alors � multiplier par la dur�e demand�e.
par exemple on peut d�tourner l'interruption 1C le temps du chronom�trage.
(elle est appel�e 18,2 fois par seconde)
le programme principal attend qu'elle soit appel�e une premi�re fois pour
ne pas compter pendant une demi-p�riode.
lors du premier appel de l'interruption, on positionne un flag qui autorise
le pgm principal � commencer � compter.
lors du deuxi�me appel, on fait stopper le comptage.
le pgm principal stocke alors la constante de temps obtenue et restaure les
vecteurs d'interruption utilis�s.
ne pas oublier de faire un test de d�bordement du compteur. j'utilise des
INT64 et sur un p4 � 2.6GHz �a montait
� 15.000.000 cycles. mais un jour, �a d�bordera, c'est juste une question
de temps.
lors d'un delay, on pr�calcule le temps demand� * 18,2 * constante de temps
et voila la boucle qu'il faut faire.
attention cette boucle doit avoir la m�me structure que celle qui a servi �
quantifier (m�mes registres, m�me instruction de jump, etc)
bien sur en multit�che selon le niveau de pollution du cache, tout peut
changer.
sinon il reste la solution d'envoyer des octets sur le port s�rie r�gl� sur
un bitrate pr�cis et tester le moment o� le registre � d�calage se vide.
voila bon amusement.
_______________________________________________________________________________
Posted Via Uncensored-News.Com - Accounts Starting At $6.95 - http://www.uncensored-news.com
<><><><><><><> The Worlds Uncensored News Source <><><><><><><><>
Technical Details
Message-ID:
<01c5c0cd$b9ffb9a0$6801a8c0@ramislap>Path:
arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!nx01.iad01.newshosting.com!newshosting.com!news.alt.net!feed.uncensored-news.com!news.uncensored-news.com!news.uncensored-news.com!not-for-mailReferences:
<432ad506$0$307$7a628cd7@news.club-internet.fr> <r1h7j1tq1djhe51hd4fifl6tah44r1i3fv@4ax.com>Show Full Headers
Complete Article Headers
X-Google-Thread: f9822,8d23bb47e02845e2 X-Google-Attributes: gidf9822,public X-Google-Language: FRENCH,ASCII From: "Alcor" <Alcor@aol.com> Subject: Re: Delai en 100 eme de ms universel Newsgroups: fr.comp.lang.c References: <432ad506$0$307$7a628cd7@news.club-internet.fr> <r1h7j1tq1djhe51hd4fifl6tah44r1i3fv@4ax.com> Message-ID: <01c5c0cd$b9ffb9a0$6801a8c0@ramislap> X-Newsreader: Microsoft Internet News 4.70.1155 NNTP-Posting-Host: news.uncensored-news.com Lines: 64 X-Comment: NOTICE: Uncensored-News.Com does not condone, nor support, spam, illegal or copyrighted postings. X-Report-Abuse-To: http://www.uncensored-news.com/terms.html#13 X-T.O.S.: http://www.uncensored-news.com/terms.html Date: 24 Sep 2005 06:26:28 GMT Organization: Uncensored-News.Com $6.95 Uncensored Newsgroups. Path: arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!nx01.iad01.newshosting.com!newshosting.com!news.alt.net!feed.uncensored-news.com!news.uncensored-news.com!news.uncensored-news.com!not-for-mail