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 :

Détection de front montant


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 6
    Par défaut Détection de front montant
    Bonsoir,

    Je voudrais lancer une temporisation sur un front montant.
    Donc pour expliquer d'avantage, je surveille l'état d'une entrée logique, donc dés qu'elle passe à 1, je lance une temporisation.

    Le code que j'utilise actuellement est :

    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
    void main ()
    {
    int Etat = 0;
    int EtatPrecedent = 0;
     
    securite ();
    }
     
    void securite ()
    {
    EtatPrecedent = Etat;
    Etat = Entrees.Logiques.Etat.NA.E_PARK;
     
    if (Etat != EtatPrecedent)
       {
       if (Etat == 1)
            {
             TemporisationLance(TpParking, TEMPS_ATTENTE_PARKING);
            }
       }
    }
    Le problème est que la temporisation ne se lance jamais, et donc il ne rentre jamais dans la boucle ( méme quand l'entrée logique passe de 0 à 1)

    Je ne sais pas si ca viens de l'initialisation de "etat" et "etatprecedent" ou ...

    Merci de me répondre car je n'arrive vrmnt pas a savoir d ou ca peut venir et ca fait un petit moment que je bloque dessus.

    merci

  2. #2
    Membre émérite
    Avatar de Kirilenko
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 234
    Par défaut
    Bonjour,

    - merci d'utiliser les balises codes.
    - je suis plutôt novice dans ce style de programmation, mais c'est normal que tu ne passes pas Etat et EtatPrecedent en paramètre à ta fonction sécurité ?
    Récursivité en C : épidémie ou hérésie ?

    "Pour être un saint dans l'Église de l'Emacs, il faut vivre une vie pure. Il faut se passer de tout logiciel propriétaire. Heureusement, être célibataire n'est pas obligé. C'est donc bien mieux que les autres églises" - Richard Stallman

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 6
    Par défaut
    j ai bien déclaré etat et etatprecedent dans ma fonction securite

    ca compile, mais c est juste que ca ne rentre pas dans la boucle

    Merci pour ta réponse

  4. #4
    Membre émérite
    Avatar de Kirilenko
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 234
    Par défaut
    Nous manquerait-il une partie du code dans ce cas-là ? Je ne vois aucune déclaration de variable moi. Je te crois quand tu dis que ça compile, mais en l'état...
    Non parce que je suis intrigué en fait.
    Récursivité en C : épidémie ou hérésie ?

    "Pour être un saint dans l'Église de l'Emacs, il faut vivre une vie pure. Il faut se passer de tout logiciel propriétaire. Heureusement, être célibataire n'est pas obligé. C'est donc bien mieux que les autres églises" - Richard Stallman

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 6
    Par défaut
    je comprend

    Au fait c est un code bcp plus lourd.

    Mais pour résumer j'ai choisit de faire une fonction qui traduit ce que je cherche a faire.

    Bonsoir,

    Je voudrais lancer une temporisation sur un front montant.
    Donc pour expliquer d'avantage, je surveille l'état d'une entrée logique, donc dés qu'elle passe à 1, je lance une temporisation.

    Le code que j'utilise actuellement est :


    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
    void securite ()
    {
    int Etat = 0;
    int EtatPrecedent = 0;
     
    EtatPrecedent = Etat;
    Etat = Entrees.Logiques.Etat.NA.E_PARK;
     
    if (Etat != EtatPrecedent)
    {
    if (Etat == 1)
    {
    TemporisationLance(TpParking, TEMPS_ATTENTE_PARKING);
    }
    }
    }
    ca seré plutt ca

  6. #6
    Membre émérite
    Avatar de Kirilenko
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 234
    Par défaut
    Ok merci, je vais pouvoir dormir tranquille.

    Bon, ta logique me semble globalement bonne, mais tu appelles ta fonction dans une boucle ?
    Récursivité en C : épidémie ou hérésie ?

    "Pour être un saint dans l'Église de l'Emacs, il faut vivre une vie pure. Il faut se passer de tout logiciel propriétaire. Heureusement, être célibataire n'est pas obligé. C'est donc bien mieux que les autres églises" - Richard Stallman

Discussions similaires

  1. Détection front montant sur un booléen
    Par Spyro29 dans le forum LabVIEW
    Réponses: 2
    Dernier message: 11/05/2012, 11h21
  2. Calcul temps de Marche sur front montant
    Par ARAGORN93 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 12/02/2008, 23h01
  3. front montant sur bit dans un mot
    Par Baxter67 dans le forum C++Builder
    Réponses: 0
    Dernier message: 23/01/2008, 23h08
  4. Capture de fronts montants avec un PIC16F876
    Par sylvain42 dans le forum C
    Réponses: 3
    Dernier message: 12/06/2006, 14h48
  5. [FW2.0][VB.net] évenement front montant
    Par grand_prophete dans le forum Windows Forms
    Réponses: 9
    Dernier message: 09/05/2006, 17h25

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