begin process at 2012 05 30 18:35:45
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Divers

 > 

Tempo C sous DOS en miliseconde?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Tempo C sous DOS en miliseconde?

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

pcman5

Membre Club
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

Membre Club
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

Membre Club
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

Membre Club
Clock = gettickcount
(et linux > windoz)

lundi 23 janvier 2006 à 17:37:38 | Re : Tempo C sous DOS en miliseconde?

vangeurmasker

Membre Club
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

Membre Club
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

Membre Club
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

Membre Club
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

Membre Club
oui, meme si je l'ai mal ecrit, je sais bien qu'il ya une majuscule, mais voici mon stdlib:


/***
*stdlib.h - d‚clarations et d‚finitions des fonctions de bibliothŠque
*       fr‚quemment utilis‚es.
*
*    Copyright (c) 1985-1988, Microsoft Corporation. Tous droits r‚serv‚s.
*
*Objetÿ:
*       Ce fichier inclus contient les d‚clarations de fonction pour les
*       fonctions de bibliothŠque fr‚quemment utilis‚es qui soit n'entrent
*       dans aucune autre cat‚gorie, ou qui, comme toupper/tolower, ne
*       peuvent ˆtre d‚clar‚es … 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 activ‚es */
    #define _CDECL    cdecl
    #define _NEAR    near
#else
/* extensions d‚sactiv‚es */
    #define _CDECL
    #define _NEAR
#endif
/* NO_EXT_KEYS */


/* d‚finition 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


/* D‚finitions des structures de donn‚es 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 retourn‚e 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 utilis‚s par les fonctions _makepath() et _splitpath().
 * les tailles comprennent un espace pour le caractŠre 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 */

/* d‚clarations des variables externes */

extern int _NEAR _CDECL errno;            /* nombre d'erreur de style XENIX */
extern int _NEAR _CDECL _doserrno;        /* valeur d'erreur de systŠme MS-DOS */
extern char * _NEAR _CDECL sys_errlist[];    /* tableau de message d'erreur perror */
extern int _NEAR _CDECL sys_nerr;        /* nombre d'entr‚es dans le tableau sys_errlist table */

extern char ** _NEAR _CDECL environ;        /* pointeur de tableau d'environnement */

extern unsigned int _NEAR _CDECL _psp;        /* pr‚fixe de segment du programme */

extern int _NEAR _CDECL _fmode;         /* mode de traduction du fichier par d‚faut */

/* 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 r‚elle */
#define OS2_MODE    1    /* Mode d'adresse prot‚g‚e */

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 d‚finie - utilise une fonction */
int _CDECL tolower(int);
#endif    /* tolower */

#ifndef toupper           /* toupper a ‚t‚ non d‚finie - utilise une fonction */
int    _CDECL toupper(int);
#endif    /* toupper */


mercredi 25 janvier 2006 à 23:47:39 | Re : Tempo C sous DOS en miliseconde?

mondrone

Membre Club
Je vien de me rendre compte que je ne trouve pas sleep() dans ma bibloothèque de fonctions standard du C. Est-elle compatible avec les normes ANSI ? Ce qui pourrait expliquer que tu ne les trouves pas si ton compilateur s'y conforme !


  Qui ne tente rien...
  Ne risque pas d'avoir grand chose !!!


1 2

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


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,139 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales