Programmation en langage c

Fermé
nougua34 - 3 janv. 2012 à 19:57
Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 - 3 janv. 2012 à 23:27
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 :


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);
}
}
}

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
A voir également:

1 réponse

Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 289
3 janv. 2012 à 23:27
Bonsoir,
Tu ne fais le test qu'une fois : il faudrait peut-être faire le test dans une boucle (tant que l'état n'est pas à 1, lire la valeur de l'état)

@+
0