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 :

fonction de temporisation en langage C


Sujet :

C

  1. #1
    Candidat au Club
    Inscrit en
    Janvier 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 4
    Points : 2
    Points
    2
    Par défaut fonction de temporisation en langage C
    Salut à tous,
    Je suis débutant en C et j'ai une question pour la réalisation d'une petite fonction.
    Il s'agit de déterminer quelle lettre un utilisateur souhaite taper en effectuant des pressions successives sur une touche regroupant plusieurs lettres.

    Considérons la touche avec les lettres a, b et c.

    En appuyant 1 première fois il faudrait lancer une temporisation et une fois cette tempo écoulée cela voudrait dire que c'est le "a" qui doit être sélectionné. Bien sûr cette tempo devrait être interrompue :
    - soit par un 2eme appui sur la touche ce qui relancerait une autre tempo dans le cas ou l'on appuyerait une troisième fois pour sélectionner la lettre c
    - soit par une pression sur une autre touche (d,e,f par exemple)

    Je pense que vous comprenez ce que je souhaite faire Je ne sais pas si le terme "tempporisation" est approprié.

    Merci de votre aide

    Pierre

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 74
    Points : 81
    Points
    81
    Par défaut
    Salut à toi,
    Je ne sais pas si il existe une fonction spécialement conçue pour ça, dans mon école on a le droit d'utiliser que ce qu'on l'on a recodé .. (excepté genre write, read, malloc .... quoi que on va bientot devoir recoder malloc).
    Enfin bref dans le genre peut être un peu magouille, j'essayerai de faire une boucle dans lequel tu places un sleep .. en attendant un second appuis de touche (ou pas).

    Enfin ya surement plus approprié :p

  3. #3
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Ben, le problème majeur, c'est que pour cela, y'a rien de standard: Il faut pouvoir saisir "au vol" la touche, sans attendre un appui sur "Entrée"...
    Et je ne suis même pas sûr que même avec les fonctions non-standard de <conio.h> (Windows) ou <curses.h> (librairie surtout pour les unixoïdes) on puisse faire ça...

    Bref, il faut savoir sur quel système tu bosses, et à quoi tu as droit... Mais en C standard, c'est impossible.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  4. #4
    Candidat au Club
    Inscrit en
    Janvier 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    je bosse sous linux, je compile avec gcc et l'interface graphique est faite avec libsx

    bien sûr l'intérêt c'est d'appuyer sur les touches comme on le fait en envoyant un texto, cad en enchainant les lettres assez rapidement.

    et si au lieu d'une tempo on faisait une sorte de chronomètre, c'est peut être bête dans le principe mais ça doit sûrement exister

    ainsi on pourrait poser les conditions

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    si appui sur touche {a,b et c} lancer le chrono
               si appui(bis) sur touche {a,b et c} réinitialiser et lancer le chrono
                           si appui(ter) sur touche {a,b et c} alors {fin tempo;lettre=C;aller a finboucle}
                si chrono>tmax constante fixée alors {lettre=B;aller a finboucle}
    si chrono>tmax constante fixée alors {lettre=A;aller a finboucle}
    FINBOUCLE
    voilà mon idée de structure ça ne me semble pas trop compliqué mais allez savoir pkoi j'ai tjrs l'impression que je veux faire des choses irréalisables lol
    A+
    Pierre

  5. #5
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Je ne connais pas X, mais sous Windows, il faudrait utiliser des fonctions comme SetTimer(), et traiter les événements du type WM_KEYDOWN, WM_KEYUP et WM_TIMER...

    Il y a sûrement des équivalents sous X...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  6. #6
    Membre expérimenté

    Inscrit en
    Mai 2002
    Messages
    720
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 720
    Points : 1 594
    Points
    1 594
    Par défaut
    Salut

    Avec un thread ?

    Smortex

    Les FAQ Assembleur - Linux
    In The Beginning Was The Command Line Neal Stephenson

Discussions similaires

  1. Fonction startOneShotAt(t0,dt), langage tinyOS-nesC
    Par Marco88 dans le forum Embarqué
    Réponses: 6
    Dernier message: 13/07/2012, 11h52
  2. Passage fonction C++ à un autre langage
    Par pitite dans le forum C++
    Réponses: 4
    Dernier message: 13/05/2012, 22h32
  3. fonction de temporisation
    Par ricoben dans le forum R
    Réponses: 2
    Dernier message: 15/05/2010, 11h44
  4. Concours fonction publique : choix de langage ?
    Par dodie119 dans le forum Langages de programmation
    Réponses: 6
    Dernier message: 09/05/2007, 11h51
  5. Réponses: 3
    Dernier message: 02/09/2002, 18h49

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