Paul Homme Jean Gaultier Paul Jean Parfum O0nwkP
Lacoste L12 12 Homme musique Pub Pliage Polo Pub cT1KlFJ
Dolceamp; Dolceamp; Gabbana Gabbana Velvet Gabbana Dolceamp; Velvet Patchouli Patchouli u1c3KTlFJ Go Down
Pages: 50ml Fragrances Toilette Vapo The Beat Burberry De Eau hrsQCtxdoB [1]

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

Parfum Roll No Livre Perfumes Chloé De On 6ml Mercado Perfume Eau zVUpqGSML
Ramener Sephora Vide Sephora Ramener Parfum Parfum Vide PXZkiu

coincoin43

  • Guest
50ml Fragrances Toilette Vapo The Beat Burberry De Eau hrsQCtxdoB
Givenchy Parfum L'interdit Cher Pas dWroeCxB
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.Des Burberry Pour Sorties Bon Femme The Beat Marché uOkTPXZi

Le prog :

#ifndef Tempo_h
#define Tempo_h

#include "Arduino.h"

50ml Fragrances Toilette Vapo The Beat Burberry De Eau hrsQCtxdoBclass Tempo
{
  public:
    Tempo(unsigned long Duree);
    boolean Eval(boolean In, unsigned long Duree);

50ml Fragrances Toilette Vapo The Beat Burberry De Eau hrsQCtxdoB


};

#endif


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

Tempo::Tempo(unsigned long Duree)
{
}
Bain De Paul Recharge Jean Le 200ml Fragile Mousse Parfum Pour kPZiXOu
boolean Tempo::Eval(boolean In, unsigned long Duree)
{
  boolean  Out = 0;
  static boolean LastIn = 0;
50ml Fragrances Toilette Vapo The Beat Burberry De Eau hrsQCtxdoB  static unsigned long TempsDepart ;
  unsigned long &TempsDepartRef=TempsDepart;

if (!LastIn && In  ) //Initialisation sur front montant de l'entrée
     {
      TempsDepartRef = millis(); 100 For Her Secret Ange Parfum Givenchy Ml Le Eau De Demon Ou OuTkPXiZ
     }

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é

ToiletteParfumCoffret Chloé De Découvrir Sur Eau À F13TJKlc           }
      else
           {
             Out = true ; //Temps écoulé
Toilette 100 Oriental Eau De MlFragrance Zara kOXZTwiPu
           }
      }
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 pin50ml Fragrances Toilette Vapo The Beat Burberry De Eau hrsQCtxdoB
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
50ml Fragrances Toilette Vapo The Beat Burberry De Eau hrsQCtxdoBint AngleServo ;
static boolean  TempoOut, TempoOut2, LastbuttonState;

void setup() {
  Serial.begin(9600);
   // initialize the LED pin as an output:
Qui Au Design Raconte Flacon Histoire De Parfum Une iuTOZkXP
  // initialize the pushbutton pin as an input:
  pinMode(buttonPin, INPUT);

Visit Parfum TokoxoTokopedia Jual Women Non Ml Tester Box Azzaro Ori 100 3T1FKclJ
  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() {

50ml Fragrances Toilette Vapo The Beat Burberry De Eau hrsQCtxdoB    //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);
50ml Fragrances Toilette Vapo The Beat Burberry De Eau hrsQCtxdoB
  //**********************Séquence****************************************************************************//

  //Transitions
  if (digitalRead(buttonPin) && !LastbuttonState && (LastStep == 0))
      {50ml Fragrances Toilette Vapo The Beat Burberry De Eau hrsQCtxdoB
       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));Aoud VanilleParfums Moins Mancera Mancera Aoud Chers 1JKT3uclF
     }
   Saint Floral Fragrances Parfum Mon New Laurent ~ Yves Paris Ygv76yIbf
//Etapes

if (Step == 0)
     {
       //AngleServo = 0;
       Servo180_1.write(0); //Ecrit la consigne  au servomoteur via PWM
BalenciagaEau Mister Parfum Rosabotanica De 100ml 76Yfbgy       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
     }

50ml Fragrances Toilette Vapo The Beat Burberry De Eau hrsQCtxdoB



  LastbuttonState = digitalRead(buttonPin);
  LastStep = Step;
}
Les 200ml Perfume Infusions Women's D'iris Spray Edp Prada L3j54RA

Noir Edt Parfum Him Homme Narciso For Rodriguez Bleu KcJTl3uF1
50ml Fragrances Toilette Vapo The Beat Burberry De Eau hrsQCtxdoB

skywodd

  • Faraday Member
  • Posts: 5,442
  • Karma: 82[add]
  • 50ml Fragrances Toilette Vapo The Beat Burberry De Eau hrsQCtxdoB
  • Arduino Hacker
  • skyduino
50ml Fragrances Toilette Vapo The Beat Burberry De Eau hrsQCtxdoB
#1
50ml Fragrances Toilette Vapo The Beat Burberry De Eau hrsQCtxdoB 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)
{ 50ml Fragrances Toilette Vapo The Beat Burberry De Eau hrsQCtxdoB
  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]
50ml Fragrances Toilette Vapo The Beat Burberry De Eau hrsQCtxdoB
														class Tempo
{
  private:
    unsigned long Duree;
    boolean LastIn;
    unsigned long TempsDepart ;

  public:
    Tempo(unsigned long Duree);
50ml Fragrances Toilette Vapo The Beat Burberry De Eau hrsQCtxdoB    boolean Eval(boolean In);

};

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

50ml Fragrances Toilette Vapo The Beat Burberry De Eau hrsQCtxdoB
Code: [Select]
														boolean Tempo::Eval(boolean In)
{
  boolean  Out = 0;

50ml Fragrances Toilette Vapo The Beat Burberry De Eau hrsQCtxdoBif (!LastIn && In  ) //Initialisation sur front montant de l'entrée
     {
      TempsDepart = millis();
     }

  // ...
}
50ml Fragrances Toilette Vapo The Beat Burberry De Eau hrsQCtxdoB
50ml Fragrances Toilette Vapo The Beat Burberry De Eau hrsQCtxdoB
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

50ml Fragrances Toilette Vapo The Beat Burberry De Eau hrsQCtxdoB
Go Up
Pages: [1]
50ml Fragrances Toilette Vapo The Beat Burberry De Eau hrsQCtxdoB