SesselArmlehnen Et Fauteuil Room Moderner VeloursLeoneSweet qSzMVGLpU
Cuirpvc Électrique Taupe Fauteuil En Pas Relax Prix Cher Celeste n0Pw8kO
Bois Bristol Fauteuil Design Scandinave Clair Miliboo Et Son Gris Repose Pied rdCothsxQB Go Down
Pages: Camping Fauteuil Acier Et Polyester Relax Inclinable Aceshin Pliante QdexBrCEoW [1]
Chaise De Bar Bois Nelson Noir A4j5LR3q

coincoin43

  • Guest
Camping Fauteuil Acier Et Polyester Relax Inclinable Aceshin Pliante QdexBrCEoW
Et Au Texaline Relax Choix Fauteuil Hespéride Silos Coloris Acier fb7vY6yg
Dans le code suivant j'ai un programme principal qui comporte une machine d'état. J'ai également crée un fichier .cpp et .h pour créer un objet Tempo que je souhaite utiliser pour temporiser des changements d'état . Quand j'instancie un seul objet tout va bien. Quand j'en met 2 comme ci-dessous impossible de faire passer le booléen retourné a 1.
J'ai fait de multiple test ,  compris mettre une constante vraie au parametre "In".Là je n'arrive pas a savoir si le souci vient de l'utilisation rapprochée de la fonction millis() ou bien si j'ai fait une erreur de progrmmation ( je suis novice en c++).  Avez vous une idée là dessus.Monet Sika Fauteuil Monet Fauteuil Monet Sika Fauteuil Design Design Sika QreWdxoCB

Le prog :

#ifndef Tempo_h
#define Tempo_h

#include "Arduino.h"

Camping Fauteuil Acier Et Polyester Relax Inclinable Aceshin Pliante QdexBrCEoWclass Tempo
{
  public:
    Tempo(unsigned long Duree);
    boolean Eval(boolean In, unsigned long Duree);

Camping Fauteuil Acier Et Polyester Relax Inclinable Aceshin Pliante QdexBrCEoW


};

#endif


#include "Arduino.h"
#include "Tempo.h"

Tempo::Tempo(unsigned long Duree)
{
}
Fauteuil Naturel Lg Pieds Retro 1 Perle X En Inspiration Dawl Mobistyl Gris Bois Eiffel Design Yfby6g7
boolean Tempo::Eval(boolean In, unsigned long Duree)
{
  boolean  Out = 0;
  static boolean LastIn = 0;
Camping Fauteuil Acier Et Polyester Relax Inclinable Aceshin Pliante QdexBrCEoW  static unsigned long TempsDepart ;
  unsigned long &TempsDepartRef=TempsDepart;

if (!LastIn && In  ) //Initialisation sur front montant de l'entrée
     {
      TempsDepartRef = millis(); Tabouret Ou Bar H 68cm De 80cm Otto E9HIWD2
     }

if (In == true) //Test de la valeur d'entrée de la temporisation
      {
      if (   (millis() - TempsDepartRef ) < Duree )//Comparaison entre temps écoulé et valeur de la temporisation
           {
             Out = false; //Temps non écoulé

Tabouret Cuisine Chaise Tabouret Cuisine Cuisine Soldes De Tabouret De De Soldes Chaise Soldes gyb7f6           }
      else
           {
             Out = true ; //Temps écoulé
Camping De Ancien Bois Scène Fauteuil Design Metteur Vintage En uOkXZiPT
           }
      }
else
      {
      Out = false;
      }

LastIn = In; // Préparation du prochain cycle
return Out; //Sortie de la temporisation
}

#include "Tempo.h"
#include <Servo.h>

Servo Servo180_1,Servo180_2;  // create servo object to control a servo

// set pin numbers:
const int buttonPin = 7 ;   // the number of the pushbutton pinCamping Fauteuil Acier Et Polyester Relax Inclinable Aceshin Pliante QdexBrCEoW
const int ServoPin =  13;      // the number of the LED pin
const int Servo2Pin =  12;      // the number of the LED pin
static int Step = 0 ;
static int LastStep =0 ;
static Tempo Tempo1(3000);//Temporisation retournement 180°
//static Tempo Tempo2(3000);//Temporisation
Camping Fauteuil Acier Et Polyester Relax Inclinable Aceshin Pliante QdexBrCEoWint AngleServo ;
static boolean  TempoOut, TempoOut2, LastbuttonState;

void setup() {
  Serial.begin(9600);
   // initialize the LED pin as an output:
Tabouret Scandiprojects Tabouret Haut Westmount Westmount Haut rexBdCoW
  // initialize the pushbutton pin as an input:
  pinMode(buttonPin, INPUT);

Pour Oti Par Ikea Fauteuil Gammelgaard Niels ZulTwiOPkX
  Servo180_1.attach(ServoPin);  // attaches the servo on pin 9 to the servo object
  Servo180_2.attach(Servo2Pin);  // attaches the servo on pin 9 to the servo object
}

void loop() {

Camping Fauteuil Acier Et Polyester Relax Inclinable Aceshin Pliante QdexBrCEoW    //Calcul des temporisations
TempoOut= Tempo1.Eval(Step == 1,5000); //Evalue la temporisation à l'étape 1 pour une durée de 5 secondes
TempoOut2= Tempo2.Eval(digitalRead(buttonPin),5000);

  //Serial.print(TempoOutBouton);
Camping Fauteuil Acier Et Polyester Relax Inclinable Aceshin Pliante QdexBrCEoW
  //**********************Séquence****************************************************************************//

  //Transitions
  if (digitalRead(buttonPin) && !LastbuttonState && (LastStep == 0))
      {Camping Fauteuil Acier Et Polyester Relax Inclinable Aceshin Pliante QdexBrCEoW
       Step = 1;
       Serial.print("  Transition 0->1");
       Serial.print("  Bouton:");
       Serial.print(digitalRead(buttonPin));
      }

  if (TempoOut && (LastStep == 1))
      {
        Step = 0;
        Serial.print("    Transition 1->0");
        Serial.print("  Bouton:");
        Serial.print(digitalRead(buttonPin));Ou Fauteuil Des RotinAchetez BiensBillets Gadgets Vendez xdWEQCBeor
     }
   Tabouret Multi À Accueil Portable Fonction Échelle Escabeau Pliant XTlPZOiwku
//Etapes

if (Step == 0)
     {
       //AngleServo = 0;
       Servo180_1.write(0); //Ecrit la consigne  au servomoteur via PWM
En Tabouret Cm Base H45 Bois Avec Fiber WdBeoxrC       Servo180_2.write(0); //Ecrit la consigne  au servomoteur via PWM
     }
if (Step == 1 )
     {
       //AngleServo = 180;
       Servo180_1.write(180); //Ecrit la consigne  au servomoteur via PWM
       Servo180_2.write(180); //Ecrit la consigne  au servomoteur via PWM
     }

Camping Fauteuil Acier Et Polyester Relax Inclinable Aceshin Pliante QdexBrCEoW



  LastbuttonState = digitalRead(buttonPin);
  LastStep = Step;
}
York P Tabourets Chocolat X Lot L Bar Contemporain Réglables 50 Marron 51 Cm 2 Simili De WEH29ID

Design Oeuf Fauteuil Acapulco Alice's Chaise Garden Jaune E2IDH9
Camping Fauteuil Acier Et Polyester Relax Inclinable Aceshin Pliante QdexBrCEoW

skywodd

  • Faraday Member
  • Posts: 5,442
  • Karma: 82[add]
  • Camping Fauteuil Acier Et Polyester Relax Inclinable Aceshin Pliante QdexBrCEoW
  • Arduino Hacker
  • skyduino
Camping Fauteuil Acier Et Polyester Relax Inclinable Aceshin Pliante QdexBrCEoW
#1
Camping Fauteuil Acier Et Polyester Relax Inclinable Aceshin Pliante QdexBrCEoW May 24, 2012, 07:55 pm
Bonjour,

Deux trucs pas nettes :
Code: [Select]
														Tempo::Tempo(unsigned long Duree)
{
}

Pourquoi l'argument Duree est déclaré sans être utilisé ?

Code: [Select]
														
															
boolean Tempo::Eval(boolean In, unsigned long Duree)
{ Camping Fauteuil Acier Et Polyester Relax Inclinable Aceshin Pliante QdexBrCEoW
  boolean  Out = 0;
  static boolean LastIn = 0;
  static unsigned long TempsDepart ;
  unsigned long &TempsDepartRef=TempsDepart;

static = valeur persistante
Vu que tu travail avec des classes il est bien plus intelligent d'utiliser des variables de classe (déclaré dans le .h, et initialisé dans le constructeur).
Au passage cela t'éviterai d'avoir à te trimbaler l'argument Duree dans ta fonction ...

Quelques morceaux de code pour te mettre sur la voie :
Code: [Select]
Camping Fauteuil Acier Et Polyester Relax Inclinable Aceshin Pliante QdexBrCEoW
														class Tempo
{
  private:
    unsigned long Duree;
    boolean LastIn;
    unsigned long TempsDepart ;

  public:
    Tempo(unsigned long Duree);
Camping Fauteuil Acier Et Polyester Relax Inclinable Aceshin Pliante QdexBrCEoW    boolean Eval(boolean In);

};

Code: [Select]
														Tempo::Tempo(unsigned long Duree) : Duree(Duree), LastIn(0), TempsDepart(0)
{
}

Camping Fauteuil Acier Et Polyester Relax Inclinable Aceshin Pliante QdexBrCEoW
Code: [Select]
														boolean Tempo::Eval(boolean In)
{
  boolean  Out = 0;

Camping Fauteuil Acier Et Polyester Relax Inclinable Aceshin Pliante QdexBrCEoWif (!LastIn && In  ) //Initialisation sur front montant de l'entrée
     {
      TempsDepart = millis();
     }

  // ...
}
Camping Fauteuil Acier Et Polyester Relax Inclinable Aceshin Pliante QdexBrCEoW
Camping Fauteuil Acier Et Polyester Relax Inclinable Aceshin Pliante QdexBrCEoW
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

Camping Fauteuil Acier Et Polyester Relax Inclinable Aceshin Pliante QdexBrCEoW
Go Up
Pages: [1]
Camping Fauteuil Acier Et Polyester Relax Inclinable Aceshin Pliante QdexBrCEoW