Accueil > Forum > > > > Tempo C sous DOS en miliseconde?
Tempo C sous DOS en miliseconde?
dimanche 22 janvier 2006 à 22:15:13 |
Tempo C sous DOS en miliseconde?

pcman5
|
Voila, j'utilise le compilateur QuickC sous DOS et je cherche a faire une temporisation en miliseconde.
La fonction Sleep n'existant pas. (En tous cas elle n'est pas declarer dans time.h)
J'ai essayé la fonction suivante, elle me permet une temporisation, mais elle arondie le temp a la seconde, par exemple:
sleep(10) <=> 0ms
sleep(1200) <=> 1sec
void sleep(int time_ms)
{
float depart, courant;
_bios_timeofday(_TIME_GETCLOCK, &depart);
do
{
_bios_timeofday(_TIME_GETCLOCK, &courant);
}
while ( (courant - depart) <= ((float)(time_ms/1000)*(float)18.2) );
}
cette fonction est l'exemple fournit dans la documentation de la run-time microsoft, pour la fonction _bios_timeofday.
voila ou j'en suis, donc je cherche une fonction qui me permeterai une tempo avec une presision de l'ordre de la milliseconde.
Merci d'avance PCMAN5
|
|
dimanche 22 janvier 2006 à 22:35:51 |
Re : Tempo C sous DOS en miliseconde?

Joky
|
Sleep est dans stdlib.h if(!Meilleur("Joky")) return ERREUR;<
|
|
lundi 23 janvier 2006 à 13:25:21 |
Re : Tempo C sous DOS en miliseconde?

mondrone
|
attention a la fonction sleep. J'ai déjà eu de belle surprises avec. La tempo me renvoyait un résultat en fonction de la puissance du PC utilisé ! Pour dire, pour une tempo de 500 ms, j'avais des résultats variants en gros entre 500 ms et 2s ! Personnellement, pour une tempo précise et fiable, j'utilise une clock ! Je ne sais pas ce que vous en pensez ?
 Qui ne tente rien... Ne risque pas d'avoir grand chose !!!
|
|
lundi 23 janvier 2006 à 14:24:16 |
Re : Tempo C sous DOS en miliseconde?

katsankat
|
Clock = gettickcount
(et linux > windoz)
|
|
lundi 23 janvier 2006 à 17:37:38 |
Re : Tempo C sous DOS en miliseconde?

vangeurmasker
|
Sleep précise le temps de pause minimum.
Sur un systeme multitache Sleep(1000) arrete le processus pendant 1
seconde puis remet le processus dans la liste d'atente. Si le
processeur a autre chose à faire la pause peut durer plus.
Mais de toute façon sur un systeme multitache le systeme peut donner le
processeur a un autre programme a tout moment donc même avec la
fonction clock on ne peut pas faire un pause précise a la milliseconde
a tous les coups.
|
|
lundi 23 janvier 2006 à 18:51:08 |
Re : Tempo C sous DOS en miliseconde?

pcman5
|
ok merci bien. j'avais lus je ne sait plus ou que sleep ce trouvait dans TIME.H, mais c'est nimp.
|
|
lundi 23 janvier 2006 à 19:00:42 |
Re : Tempo C sous DOS en miliseconde?

pcman5
|
hum en faite, je me suis trompé, sleep n'est pas non plus dans stdlib.h.
mais la fonction sleep n'est pas repertorier dans la run-time, donc je suppose qu'elle n'existe pas sous DOS ???
Peut faut-il realiser cette fonction en assembleur, avec les interruption du DOS ou du BIOS?
PCMAN5
|
|
lundi 23 janvier 2006 à 19:04:45 |
Re : Tempo C sous DOS en miliseconde?

Joky
|
C'est Sleep() avec une majuscule. if(!Meilleur("Joky")) return ERREUR;<
|
|
mercredi 25 janvier 2006 à 18:56:36 |
Re : Tempo C sous DOS en miliseconde?

pcman5
|
oui, meme si je l'ai mal ecrit, je sais bien qu'il ya une majuscule, mais voici mon stdlib:
/*** *stdlib.h - dclarations et dfinitions des fonctions de bibliothque * frquemment utilises. * * Copyright (c) 1985-1988, Microsoft Corporation. Tous droits rservs. * *Objetÿ: * Ce fichier inclus contient les dclarations de fonction pour les * fonctions de bibliothque frquemment utilises qui soit n'entrent * dans aucune autre catgorie, ou qui, comme toupper/tolower, ne * peuvent tre dclares
l'endroit habituel pour d'autres raisons. * [ANSI] * ****/
#ifndef _SIZE_T_DEFINED typedef unsigned int size_t; #define _SIZE_T_DEFINED #endif
#ifndef NO_EXT_KEYS /* extensions actives */ #define _CDECL cdecl #define _NEAR near #else /* extensions dsactives */ #define _CDECL #define _NEAR #endif /* NO_EXT_KEYS */
/* dfinition du type de retour pour la fonction onexit() */
#define EXIT_SUCCESS 0 #define EXIT_FAILURE 1
#ifndef _ONEXIT_T_DEFINED typedef int (_CDECL * _CDECL onexit_t)(); #define _ONEXIT_T_DEFINED #endif
/* Dfinitions des structures de donnes pour div et ldiv. */
#ifndef _DIV_T_DEFINED
typedef struct { int quot; int rem; } div_t;
typedef struct { long quot; long rem; } ldiv_t;
#define _DIV_T_DEFINED #endif
/* Valeur maximale pouvant tre retourne par rand. */
#define RAND_MAX 0x7fff
/* macros min et max */
#define max(a,b) (((a) > (b)) ? (a) : (b)) #define min(a,b) (((a) < (b)) ? (a) : (b))
/* tailles des tampons utiliss par les fonctions _makepath() et _splitpath(). * les tailles comprennent un espace pour le caractre de terminaison 0 */
#define _MAX_PATH 144 /* longueur maximale du nom de chemin complet */ #define _MAX_DRIVE 3 /* longueur maximale du composant du lecteur */ #define _MAX_DIR 130 /* longueur maximale du composant du chemin */ #define _MAX_FNAME 9 /* longueur maximale du composant du nom de fichier */ #define _MAX_EXT 5 /* longueur maximale du composant de l'extension */
/* dclarations des variables externes */
extern int _NEAR _CDECL errno; /* nombre d'erreur de style XENIX */ extern int _NEAR _CDECL _doserrno; /* valeur d'erreur de systme MS-DOS */ extern char * _NEAR _CDECL sys_errlist[]; /* tableau de message d'erreur perror */ extern int _NEAR _CDECL sys_nerr; /* nombre d'entres dans le tableau sys_errlist table */
extern char ** _NEAR _CDECL environ; /* pointeur de tableau d'environnement */
extern unsigned int _NEAR _CDECL _psp; /* prfixe de segment du programme */
extern int _NEAR _CDECL _fmode; /* mode de traduction du fichier par dfaut */
/* nombres des versions DOS majeure/mineure */
extern unsigned char _NEAR _CDECL _osmajor; extern unsigned char _NEAR _CDECL _osminor;
#define DOS_MODE 0 /* Mode d'adresse relle */ #define OS2_MODE 1 /* Mode d'adresse protge */
extern unsigned char _NEAR _CDECL _osmode;
/* prototypes de fonctions */
double _CDECL atof(const char *); double _CDECL strtod(const char *, char * *); ldiv_t _CDECL ldiv(long, long);
void _CDECL abort(void); int _CDECL abs(int); int _CDECL atexit(void (_CDECL *)(void)); int _CDECL atoi(const char *); long _CDECL atol(const char *); void * _CDECL bsearch(const void *, const void *, size_t, size_t, int (_CDECL *)(const void *, const void *)); void * _CDECL calloc(size_t, size_t); div_t _CDECL div(int, int); char * _CDECL ecvt(double, int, int *, int *); void _CDECL exit(int); void _CDECL _exit(int); char * _CDECL fcvt(double, int, int *, int *); void _CDECL free(void *); char * _CDECL gcvt(double, int, char *); char * _CDECL getenv(const char *); char * _CDECL itoa(int, char *, int); long _CDECL labs(long); unsigned long _CDECL _lrotl(unsigned long, int); unsigned long _CDECL _lrotr(unsigned long, int); char * _CDECL ltoa(long, char *, int); void _CDECL _makepath(char *, char *, char *, char *, char *); void * _CDECL malloc(size_t); onexit_t _CDECL onexit(onexit_t); void _CDECL perror(const char *); int _CDECL putenv(char *); void _CDECL qsort(void *, size_t, size_t, int (_CDECL *)(const void *, const void *)); unsigned int _CDECL _rotl(unsigned int, int); unsigned int _CDECL _rotr(unsigned int, int); int _CDECL rand(void); void * _CDECL realloc(void *, size_t); void _CDECL _searchenv(char *, char *, char *); void _CDECL _splitpath(char *, char *, char *, char *, char *); void _CDECL srand(unsigned int); long _CDECL strtol(const char *, char * *, int); unsigned long _CDECL strtoul(const char *, char * *, int); void _CDECL swab(char *, char *, int); int _CDECL system(const char *); char * _CDECL ultoa(unsigned long, char *, int);
#ifndef tolower /* tolower a t non dfinie - utilise une fonction */ int _CDECL tolower(int); #endif /* tolower */
#ifndef toupper /* toupper a t non dfinie - utilise une fonction */ int _CDECL toupper(int); #endif /* toupper */
|
|
mercredi 25 janvier 2006 à 23:47:39 |
Re : Tempo C sous DOS en miliseconde?
|
Cette discussion est classée dans : fonction, tempo, time, dos, sleep
Répondre à ce message
Sujets en rapport avec ce message
creer une tempo et bibliotheque [ par jimtruand ]
je crois qu'on peut creer une tempo avec sleep mais quel fichier d'include mettre dans le code mon code a pour but d'afficher toutes les 3 s le carre
creer une tempo [ par jimtruand ]
salut!je voudrais savoir quel fichiers include on doit utiliser pour sleep que la compilation ne reconnait pasmon code est le suivant#include #include
DOS mode 13h! image BMP-PCX!?????? [ par idk ]
On peux pas me donner un code simple !d'une fonction afficheImage(X,Y);sanchant que c'est en mode 13h! Que j'ai fais la fonction ecriredans la pallett
fonction sleep ? [ par kilian ]
bonjour la teamje souhaiterai savoir si qql1 connais une fonction equivalente a la fonction sleep... car pdt que la fonction sleep est activer, je ne
Fonction sleep [ par ToToL ]
Je cherche la fonction sleep sur visual c++. si quelqu'un pouvai m'aider :) se serai super.----------------------------------------------Programmeur e
Aide pour la fonction sleep() [ par KeNnNyY ]
Je cherche a faire un sleep en nanoseconde avec koi sinon sleep et comment pourrais je le faire?????Plz repondez moi vite je m'en sors pas
Lenteur d'un programme vs Sleep (); [ par ricky78 ]
J'ai remarqué que le temps réelle de la fonction Sleep(n ms); dépend de l'OS sur lequel le programme est lancé.Sous windows 98 un Sleep(1); dur réell
Chronometrer le temps d'éxecution d'une fonction en C [ par poiuytrez3 ]
Bonjour, je cherche comment chronometrer le temps d'éxecution d'un tri. Je sais qu'il faut utiliser le fichier time.h avec la fonction time(), j'ai e
Initialisation variable... [ par mriviere ]
Bonjour , j'ai un probleme d'initialisation de variable, en effet j'utilise deux fois la meme fonction dans mon main pour deux cas different, mais mon
Temps d'attente précis (~ms) [ par Arateris ]
Bonjour, pour une appli en C/C++, j'aurais besoin qu'un thread se mette en pause pour une durée courte (1,2,5 ou 10ms) de facon fiable. Mon but étan
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|