IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Chronomètre & Langage C...


Sujet :

C

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 70
    Points : 31
    Points
    31
    Par défaut Chronomètre & Langage C...
    Bonjour,
    je voudrais savoir s'il est possible de réaliser un chronomètre en langage C?
    Si oui, ou je pourrai trouver des exemples?

    Car en faite, pour un projet je doit chronometrer une série de karting passant devant un capteur.Cette partie étant réaliser et simuler par des RFID, j'aurai voulu savoir si l'était possible de réaliser la partie chronométrage.
    Merci d'avance
    A+ Matt

  2. #2
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut Re: Chronmètre & Langage C...
    Citation Envoyé par _matt_44
    je voudrais savoir s'il est possible de réaliser un chronomètre en langage C?
    Avec une précision faible (1 seconde), oui, avec time()...
    Pour une méilleure précision, ça dépend du système, mais quoi qu'il arrive, ça ne vaudra jamais une carte spécialisée...

    Conclusion, pour un programme 'jouet', ça va, mais c'est hors de question pour un chronométrage officiel.
    Pas de Wi-Fi à la maison : CPL

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mai 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 70
    Points : 31
    Points
    31
    Par défaut
    Ok je pense que cela devrait faire l'affaire puisque c'est pour une démo qui requiert pas de précision accrue.
    Cependant serait t'il possible d'avoir plus d'exemple sur la commande time() ??
    A+ matt

  4. #4
    Nouveau membre du Club
    Inscrit en
    Mai 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 70
    Points : 31
    Points
    31
    Par défaut
    J'ai bien trouver cette page : http://w3.ift.ulaval.ca/~abali/ift-1.../c110_110.html
    Concernant la manipulation de la librairie time.h mais cependant je ne sais pas si toute les fonctions sont utilisable en C??
    Quelqu'un peut t'il m'éclairer ??
    A+ Matt

  5. #5
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par _matt_44
    Ok je pense que cela devrait faire l'affaire puisque c'est pour une démo qui requiert pas de précision accrue.
    Cependant serait t'il possible d'avoir plus d'exemple sur la commande time()
    Tu n'as donc pas de livre de C ?

    http://emmanuel-delahaye.developpez....s.htm#difftime
    Pas de Wi-Fi à la maison : CPL

  6. #6
    Nouveau membre du Club
    Inscrit en
    Mai 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 70
    Points : 31
    Points
    31
    Par défaut
    Non c vrai je n'en ai pas peut etre j'aurai du investir!
    Je vais étudier cela de plus près!
    Merci
    A+

  7. #7
    Membre du Club Avatar de Menthe_a_l_eau
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 47
    Points : 50
    Points
    50
    Par défaut
    c'est sur une carte embarquée? ou sur PC ?

  8. #8
    Nouveau membre du Club
    Inscrit en
    Mai 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 70
    Points : 31
    Points
    31
    Par défaut
    En faite je pilote le kit RFID avec le pc via la liaison USB et mon programme qui permet de faire cette gestion est en langage C.

    Voila

  9. #9
    Nouveau membre du Club
    Inscrit en
    Mai 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 70
    Points : 31
    Points
    31
    Par défaut
    Bon j'ai essayer d'inclure le code exemple dans mon programme pour voir ce que cela donnait cependant une pluie d'erreur est apparue a la compilation alors que si je test l'exemple a par il fonctionne parfaitement !!

    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
     
    /*--------------------------INCLUDES---------------------------*/
    #include <windows.h>	// librairie windows 
     
    #include <stdio.h>		// librairie entrées/sorties
    #include <time.h>		// Librairie d'utlilsation du temps
    #include <stdio.h>
    #include <stdlib.h>
    #include "askcsc.h"		// librairie ASK-csc 
    /*-------------------------------------------------------------*/
     
     
    /*-------------------DEFINITION DE VARIABLES-------------------*/
    #define TIMEOUT 0x44	// &#40;no&#41; time out when looking for a card
    #define FORGET 0x01
    #define REC_LENGTH 0x08
    #define READ_REC 0x00
    #define LN_OUT_ACTIVE 0x10
    #define SYSTBITS_LENGTH 0x10
    #define ADD_SYSTBITS 0x10
    #define VERSIONLENGTH 80
     
    /*----------------------SECURITE ACCMODE-----------------------*/
    #define DEFAULT		0x00					//Accés en mode par default
    #define	PROTECTED	0x01					//Accés en mode protégé
    #define STAMPED		0x02					//Accés en mode stamped
    /*-------------------------------------------------------------*/
     
    /*----------------------------KEYS-----------------------------*/
    #define MF_PER_KEY 0x10
    #define MF_PAR_KEY 0x12
    #define MF_INV_KEY 0x13
    #define MF_STR_KEY 0x14
    /*-------------------------------------------------------------*/
    /*-------------------------------------------------------------*/
     
     
     
    void main &#40;&#41;
    &#123;	
     
    /*-------------------------VARIABLES---------------------------*/
    	DWORD	ret;							//Valeur de retour
    	DWORD	search_mask;					//Masque de recherche
    	DWORD	respLength;						//Response length
    	sCARD_SecurParam securParam;			//Parametres de securité
    	BYTE	response&#91;10&#93;;					//Réponse de la carte
    	BYTE	status;
    	BYTE	indice=0;
    	BYTE	data&#91;REC_LENGTH&#93;;
    	char	version&#91;VERSIONLENGTH&#93;;			// buffer for SW version
     
    /*-------------------------------------------------------------*/
     
     
    /*-------------------VARIABLES DE RECHERCHE--------------------*/
    	sCARD_SearchExt	SearchExt ;
    	BYTE COM;
     
    	SearchExt.CONT=0x07;
    	SearchExt.ISOB=0x04;
    	SearchExt.ISOA=0x08;
    	SearchExt.TICK=0x06;
    	SearchExt.INNO=0x03;
    	SearchExt.MIFARE=0x05;
    	SearchExt.MV4k=0x0A;
    	SearchExt.MV5k=0x0B;
    /*-------------------------------------------------------------*/
     
     
    /*----------------------MASK de RECHERCHE----------------------*/
    	search_mask=SEARCH_MASK_TICK ;
    /*-------------------------------------------------------------*/
     
     
    /*--------------------VARIABLES DE LECTURES--------------------*/
    	securParam.AccMode=DEFAULT;
    	securParam.RFU=0x00;
    	securParam.SID=0x03;
    	securParam.LID=0x0003;
    	securParam.NKEY=MF_PER_KEY;
    /*-------------------------------------------------------------*/
     
     
    /*-------------------------------------------------------------*/
    /*----------------------PARTIE EXECUTIVE-----------------------*/
    /*-------------------------------------------------------------*/
    //CODE INCLU--------------------------------------------------------------------
    	time_t now = time &#40;NULL&#41;;
    error C2275: 'time_t' : illegal use of this type as an expression
    see declaration of 'time_t' in time.h
    error C2146: syntax error : missing ';' before identifier 'now'
    error C2065: 'now' : undeclared identifier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    	struct tm tm_now = *localtime &#40;&now&#41;;
    error C2143: syntax error : missing ';' before 'type'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    	char s&#91;64&#93;;
    error C2143: syntax error : missing ';' before 'type'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    	strftime &#40;s, sizeof s, "%d/%m/%Y", &tm_now&#41;;
    error C2065: 's' : undeclared identifier
    error C2065: 'tm_now' : undeclared identifier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    	printf &#40;"Aujourd'hui &#58; %s\n", s&#41;;
     
     
    	//prochain Noel 
        &#123;
        struct tm tm_xmas = &#123;0&#125;;
        tm_xmas.tm_year = tm_now.tm_year;
    error C2224: left of '.tm_year' must have struct/union type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
     
        tm_xmas.tm_mon = 12 - 1;
        tm_xmas.tm_mday = 25;
     
        // ajustement 
        &#123;
            time_t xmas = mktime &#40;&tm_xmas&#41;;
            strftime &#40;s, sizeof s, "%d/%m/%Y", &tm_xmas&#41;;
            printf &#40;"Noel &#58; %s\n", s&#41;;
            &#123;
    			time_t diff = difftime &#40;xmas, now&#41;;
    			struct tm tm_diff = *gmtime &#40;&diff&#41;;
     
    			printf &#40;"Plus que %d jours avant Noel\n", tm_diff.tm_yday&#41;;
    			&#125;
    		&#125;
    	&#125;
    //------------------------------------------------------------------------------
    /*------------RECHERCHE ET OUVERTURE COMMUNICATION-------------*/
    	ret=CSC_SearchCSC&#40;&#41;;
    	if &#40;ret!=RCSC_Ok&#41;						//Test d'ouverture
    	&#123;
    		printf&#40;"COMMUNICATION IMPOSSIBLE\n"&#41;;
    	&#125;
    	else
    	&#123;
    		ret=CSC_CardStartSearch&#40;&#41;;			//Recherche d'une carte
    	&#125;
    	if&#40;ret==RCSC_Ok&#41;
    	&#123;
    		ret=CSC_SearchCardExt&#40;&SearchExt,search_mask,FORGET,TIMEOUT,&COM,&respLength,response&#41;;
    		if&#40;ret==RCSC_Ok&#41;
    		&#123;			
    			printf&#40;"---------  COMMUNICATION OK & PRESENCE D'UNE CARTE  ---------\n"&#41; ;
    		&#125;
    		else
    		&#123;
    			printf&#40;"---------  COMMUNICATION OK & AUCUNE CARTE  ---------\n"&#41; ;
    		&#125;
    /*-------------------------------------------------------------*/
     
    /*--------------------VERSION DU COUPLEUR----------------------*/			
    		ret=CSC_VersionCSC&#40;version&#41;;		// display SW version
    		if &#40;ret!=RCSC_Ok&#41;
    		&#123;
    			printf&#40;"\nERREUR DE LECTURE DE LA VERSION DU COUPLEUR\n"&#41;;
    		&#125;
    		else
    		&#123;
    			printf&#40;"\nVERSION DU COUPLEUR &#58;\n%s\n\n",version&#41;; // print SW version
    		&#125;
    /*-------------------------------------------------------------*/
     
     
    /*--------------------LECTURE DES DONNEES----------------------*/
    		if&#40;ret!=RCSC_Ok&#41;
    		&#123;
    			printf&#40;"LECTURE FAILED\n"&#41;;
    		&#125;
    		else
    		&#123;
    			do 
    			&#123;
    				ret=CSC_SearchCSC&#40;&#41;;
    				ret=CSC_CardStartSearch&#40;&#41;;						//Recherche d'une carte
    				ret=CSC_SearchCardExt&#40;&SearchExt,search_mask,FORGET,TIMEOUT,&COM,&respLength,response&#41;;
     
    				printf&#40;"\nLecture des donnees....................................\n\nNumero de serie &#91;Hexa&#93;&#58; 0"&#41;;
    				for &#40;indice=0; indice<REC_LENGTH; indice++&#41;		//Incrémentation 
    				&#123;
    					printf&#40;"%x", response&#91;indice&#93;&#41;;
    				&#125;	
    				printf&#40;"\n\n....................................Lecture effectuee avec succes\n\n"&#41;;
    				printf&#40;"Voulez vous testez une autre carte ?&#40;PRESS ENTRER  ou n&#41;"&#41;;
    			&#125;
    			while &#40;getchar&#40;&#41;!= 'n'&#41;;
    		&#125;
    	&#125;
     
    /*-------------------------------------------------------------*/
     
    /*-------------------FERMETURE COMMUNICATION-------------------*/
    CSC_Close&#40;&#41; ;
    /*-------------------------------------------------------------*/
    &#125;

    Voila je n'arrive pas a résoudre les erreur suivante! J'ai pourtannt bien délcarer les librairies concernés....
    NB:Je précise que j'ai n'est rien modifié du code inclu car j'ai voulu d'abord voir son focntionnement tel quel!
    A+ matt

  10. #10
    Membre actif Avatar de Biosox
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 298
    Points : 203
    Points
    203
    Par défaut
    Bon.
    quand tu as une pluie d'erreur comme celle-là, il faut commencer par regarder la première. la première seulement:
    Sachant qu'elle peut engendrer d'autres erreurs, parfois corriger la première revient à les corriger toutes, parfois ça change les autres erreurs.

    Dans ton cas, quelle est la première erreur? est-ce:
    error C2275: 'time_t' : illegal use of this type as an expression
    si c'est le cas, l'erreur peut en fait provenir des lignes précédents. mais apres un premier coup d'oeil je vois hélas pas. et comme j'ai pas le fichier askcsc.h, evidemment ça compile pas chez moi.

    a quoi ça ressemble, le type sCARD_SecurParam ?
    edit: et le sCARD_SearchExt surtout?

  11. #11
    Membre actif Avatar de Biosox
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 298
    Points : 203
    Points
    203
    Par défaut
    STOP! je dis que des conneries.

    en C, tu as pas le droit de déclarer une nouvelle variable n'importe ou!!!!!

    donc tu met un
    au tout début, ave les autres déclarations, et un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    now = time&#40;NULL&#41;;
    la ou tu as mis ton
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    time_t now = time&#40;NULL&#41;
    et c'est réglé

  12. #12
    Nouveau membre du Club
    Inscrit en
    Mai 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 70
    Points : 31
    Points
    31
    Par défaut
    j'ai résolue le probleme en faisant un module calcul_temp().
    Car le programme était correct quand je le compilait a par!
    Il devait etre mal placé dans le main() je vois que ca.
    A+ matt

  13. #13
    Membre actif Avatar de Biosox
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 298
    Points : 203
    Points
    203
    Par défaut
    en effet, il était mal placé, cf ma 2eme réponse que tu as du louper

    si le problème est résolu, clique sur

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 21/04/2014, 21h10
  2. [langage] Je cherche un bon livre ?
    Par Anonymous dans le forum Langage
    Réponses: 13
    Dernier message: 09/04/2003, 14h16
  3. [langage] comment créer des fichiers ?
    Par Anonymous dans le forum Langage
    Réponses: 3
    Dernier message: 05/05/2002, 17h33
  4. Comparer des fichiers de données : Quel Langage ?
    Par Anonymous dans le forum Langages de programmation
    Réponses: 6
    Dernier message: 24/04/2002, 23h37
  5. Cours, tutoriels, logiciels, F.A.Q,... pour le langage SQL
    Par Marc Lussac dans le forum Langage SQL
    Réponses: 0
    Dernier message: 04/04/2002, 11h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo