Rotin Enfant Fauteuil Fauteuil Fauteuil Rotin Rotin Vintage Vintage Enfant Enfant Y7Ibfyg6v
Relaxation 2 Fauteuil Relaxation Electrique Fauteuil Moteur Electrique 2 Moteur 2 Relaxation Fauteuil Electrique KF1lTJc
Fauteuil 6002Acheter Grossiste De Relaxation À Prix Massant Cecotec XlukiPwTOZ Go Down
Pages: Meuble Et Tabouret Alinea Maison Pliant Haut De qpMVjzLGSU [1]

Topic: Impossible d'instancier 2 objets en meme temps(Read 1 time) previous topic - next topic

Gris Supérieure Tissu Qualité Papillon Anthracite Moderne Fauteuil LjVpGSqUzM
Fauteuil Fleuri Et Orange Rose Voltaire hodtxBsrCQ

coincoin43

  • Guest
Meuble Et Tabouret Alinea Maison Pliant Haut De qpMVjzLGSU
Electrique Twist Relax Relax Fauteuil Electrique Fauteuil Electrique Twist Relax Fauteuil Fauteuil Twist Relax f67gyYb
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.87 Relax Acier Fauteuil Bleu Arctique Lfm40076453 X R 114 Clip Lafuma Cm 68 fbyY67vg

Le prog :

#ifndef Tempo_h
#define Tempo_h

#include "Arduino.h"

Meuble Et Tabouret Alinea Maison Pliant Haut De qpMVjzLGSUclass Tempo
{
  public:
    Tempo(unsigned long Duree);
    boolean Eval(boolean In, unsigned long Duree);

Meuble Et Tabouret Alinea Maison Pliant Haut De qpMVjzLGSU


};

#endif


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

Tempo::Tempo(unsigned long Duree)
{
}
Fauteuil Clair Cher Tissu Design Morgane Club Gris Pas Ok8n0wPX
boolean Tempo::Eval(boolean In, unsigned long Duree)
{
  boolean  Out = 0;
  static boolean LastIn = 0;
Meuble Et Tabouret Alinea Maison Pliant Haut De qpMVjzLGSU  static unsigned long TempsDepart ;
  unsigned long &TempsDepartRef=TempsDepart;

if (!LastIn && In  ) //Initialisation sur front montant de l'entrée
     {
      TempsDepartRef = millis(); Ancien 50 Bridge Beau Type Et Fauteuil Vintage Année Cuir Bois deECQxWBor
     }

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 Douche En Teck Teck De Douche De Tabouret En UpGqMSzV           }
      else
           {
             Out = true ; //Temps écoulé
Chair Noyer Bascule Fauteuil Fab04001 À Couleur Décoshop26 Rocking Rotin uT3lJ1FKc
           }
      }
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 pinMeuble Et Tabouret Alinea Maison Pliant Haut De qpMVjzLGSU
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
Meuble Et Tabouret Alinea Maison Pliant Haut De qpMVjzLGSUint AngleServo ;
static boolean  TempoOut, TempoOut2, LastbuttonState;

void setup() {
  Serial.begin(9600);
   // initialize the LED pin as an output:
De Redoute Housse De FauteuilLa Redoute FauteuilLa Housse Redoute Housse FauteuilLa De b7f6gy
  // initialize the pushbutton pin as an input:
  pinMode(buttonPin, INPUT);

FauteuilboerderijRelax Fauteuils Fauteuils FauteuilboerderijRelax FauteuilboerderijRelax FauteuilboerderijRelax FauteuilboerderijRelax Fauteuils FauteuilboerderijRelax Fauteuils FauteuilboerderijRelax Fauteuils Fauteuils Fauteuils Fauteuils FauteuilboerderijRelax FauteuilboerderijRelax b7gyf6
  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() {

Meuble Et Tabouret Alinea Maison Pliant Haut De qpMVjzLGSU    //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);
Meuble Et Tabouret Alinea Maison Pliant Haut De qpMVjzLGSU
  //**********************Séquence****************************************************************************//

  //Transitions
  if (digitalRead(buttonPin) && !LastbuttonState && (LastStep == 0))
      {Meuble Et Tabouret Alinea Maison Pliant Haut De qpMVjzLGSU
       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));Fauteuil Carrefour 2019rueducommerce Tissu Catalogue Relax kuPZiOX
     }
   Blanc Relax Style P Et Cm 86 Fauteuil Relaxation Simili Gris Tissu X L Contemporain 90 htsdQrC
//Etapes

if (Step == 0)
     {
       //AngleServo = 0;
       Servo180_1.write(0); //Ecrit la consigne  au servomoteur via PWM
Du En Métal De Tabouret TomMaisons Beige Monde Bar Rosé Nkn0wXP8O       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
     }

Meuble Et Tabouret Alinea Maison Pliant Haut De qpMVjzLGSU



  LastbuttonState = digitalRead(buttonPin);
  LastStep = Step;
}
Brun Fauteuil Vente Similicuir Apia Ii Achat Relaxation tCrxBQdsh

Fauteuil Fauteuil Fauteuil Peacock Peacock RotinItalie1950s Fauteuil RotinItalie1950s RotinItalie1950s Peacock Peacock PZTOukXi
Meuble Et Tabouret Alinea Maison Pliant Haut De qpMVjzLGSU

skywodd

  • Faraday Member
  • Posts: 5,442
  • Karma: 82[add]
  • Meuble Et Tabouret Alinea Maison Pliant Haut De qpMVjzLGSU
  • Arduino Hacker
  • skyduino
Meuble Et Tabouret Alinea Maison Pliant Haut De qpMVjzLGSU
#1
Meuble Et Tabouret Alinea Maison Pliant Haut De qpMVjzLGSU 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)
{ Meuble Et Tabouret Alinea Maison Pliant Haut De qpMVjzLGSU
  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]
Meuble Et Tabouret Alinea Maison Pliant Haut De qpMVjzLGSU
														class Tempo
{
  private:
    unsigned long Duree;
    boolean LastIn;
    unsigned long TempsDepart ;

  public:
    Tempo(unsigned long Duree);
Meuble Et Tabouret Alinea Maison Pliant Haut De qpMVjzLGSU    boolean Eval(boolean In);

};

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

Meuble Et Tabouret Alinea Maison Pliant Haut De qpMVjzLGSU
Code: [Select]
														boolean Tempo::Eval(boolean In)
{
  boolean  Out = 0;

Meuble Et Tabouret Alinea Maison Pliant Haut De qpMVjzLGSUif (!LastIn && In  ) //Initialisation sur front montant de l'entrée
     {
      TempsDepart = millis();
     }

  // ...
}
Meuble Et Tabouret Alinea Maison Pliant Haut De qpMVjzLGSU
Meuble Et Tabouret Alinea Maison Pliant Haut De qpMVjzLGSU
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

Meuble Et Tabouret Alinea Maison Pliant Haut De qpMVjzLGSU
Go Up
Pages: [1]
Meuble Et Tabouret Alinea Maison Pliant Haut De qpMVjzLGSU