p
u
b
l
i
c
i
t
é
publicité
  1. #1
    Invité de passage
    Inscrit en
    avril 2009
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : avril 2009
    Messages : 29
    Points : 2
    Points
    2

    Par défaut Codé un retard (time delay) en C

    Bonjour tout le monde,

    Je travaille avec matlab et je code mes modèles en C pour pouvoir les utiliser dans mon banc d'essai expérimental. Là, je cherche à coder un retard (time delay) en C. J'ai beau cherché sur le net, je n'ai pas trouvé une réponse à ma question.

    Merci d'avance à vous.

  2. #2
    Expert Confirmé Sénior Avatar de fregolo52
    Homme Profil pro
    Développeur C
    Inscrit en
    août 2004
    Messages
    2 337
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : août 2004
    Messages : 2 337
    Points : 5 096
    Points
    5 096

    Par défaut

    salut,

    je pense que tu ne sais pas ce que tu dois chercher, c'est pour ça que tu ne trouves pas.

    Peux-tu expliquer ce qu'implique ce retard dans ta chaine de calcul ? Est-ce qu'il interrompt le calcul ? Est-ce que tu as plusieurs calculs en parallèle ?

    Le plus vulgaire des retards est la fonction Sleep, mais je pense qu'elle ne te convient pas.

    Je suppose que tu es sous Windows.

  3. #3
    Membre Expert
    Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    mars 2006
    Messages
    869
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : mars 2006
    Messages : 869
    Points : 1 167
    Points
    1 167

    Par défaut

    Salut,

    Si tu veux un code multiplateformes, il faudrait t'inspirer de ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #if defined (Win32)
    #  include <windows.h>
    #  define psleep(sec) Sleep ((sec) * 1000)
    #elif defined (Linux)
    #  include <unistd.h>
    #  define psleep(sec) sleep ((sec))
    #endif
    Ça créée une macro psleep (pour portable sleep?) tenant compte des spécificités des deux principales plateformes.C'est un code que j'ai vu ici il y a une petite dizaine d'années, il me semble qu'il est d'Ed, qui ne poste visiblement plus aujourd'hui.

    A+

    Pfeuh

  4. #4
    Invité de passage
    Inscrit en
    avril 2009
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : avril 2009
    Messages : 29
    Points : 2
    Points
    2

    Par défaut

    Citation Envoyé par fregolo52 Voir le message
    salut,

    je pense que tu ne sais pas ce que tu dois chercher, c'est pour ça que tu ne trouves pas.

    Peux-tu expliquer ce qu'implique ce retard dans ta chaine de calcul ? Est-ce qu'il interrompt le calcul ? Est-ce que tu as plusieurs calculs en parallèle ?

    Le plus vulgaire des retards est la fonction Sleep, mais je pense qu'elle ne te convient pas.

    Je suppose que tu es sous Windows.
    Merci pour ta réponse. En fait, sous matlab, il y a unit delay, qui induit un retard dans le traitement de l'information. Si par exemple, on a un signal, le time delay permet de retarder le signal avec d'une durée égale au temps d'échantillonnage.

  5. #5
    Membre chevronné

    Ingénieur développement matériel électronique
    Inscrit en
    juillet 2010
    Messages
    309
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : juillet 2010
    Messages : 309
    Points : 614
    Points
    614

    Par défaut

    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Si par exemple, on a un signal, le time delay permet de retarder le signal avec d'une durée égale au temps d'échantillonnage.
    C'est un filtre d’équation z^-1. Cela correspond a un simple stockage d'un donnée dans un variable en informatique, a un étage de pipeline en électronique numérique.

    @+

  6. #6
    Expert Confirmé Sénior Avatar de fregolo52
    Homme Profil pro
    Développeur C
    Inscrit en
    août 2004
    Messages
    2 337
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : août 2004
    Messages : 2 337
    Points : 5 096
    Points
    5 096

    Par défaut

    Citation Envoyé par espoir1976 Voir le message
    Merci pour ta réponse. En fait, sous matlab, il y a unit delay, qui induit un retard dans le traitement de l'information. Si par exemple, on a un signal, le time delay permet de retarder le signal avec d'une durée égale au temps d'échantillonnage.
    On va dire que la fonction Sleep (en ms sous Windows) devrait faire l'affaire. Par contre, quelle est l'unité de temps de l'échantillonnage ?

Discussions similaires

  1. [Variable Time Delay] en discret
    Par lecteur1001 dans le forum Simulink
    Réponses: 6
    Dernier message: 14/09/2011, 18h15
  2. Comment creer un time delay negatif
    Par titeleonie dans le forum Simulink
    Réponses: 3
    Dernier message: 08/06/2011, 14h31
  3. Réponses: 1
    Dernier message: 29/06/2010, 14h23
  4. Comment fonctionne un réseau TDNN (time delay neural network) ?
    Par alimo44 dans le forum Méthodes prédictives
    Réponses: 0
    Dernier message: 29/06/2010, 13h19
  5. Time delay neurone network with AG
    Par nadou114 dans le forum Signal
    Réponses: 0
    Dernier message: 10/12/2009, 22h32

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