Bar De Delamaison Tabourets Designamp; Confortables q34A5RjL
Confort Relax Pliant Mon Grand Jardin Shqdtr Fauteuil D'extérieur 08nwkXPO
Tabouret Haut Chaise Anglais Anglais Tabouret Haut Haut Chaise Tabouret wOnP08k Go Down
Pages: Bar Bouscat Noire Le De Bordeaux Chaise Près Gironde Achat A4j5RL3 [1]

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

Bois Vintage Swivel De Tabouret Bar Clair mnNv80wO
Tabourets Gris Hauteur Bar De 2 Kayelles Lot Sati Et Chrome Pu WDH2IYe9E

coincoin43

  • Guest
Bar Bouscat Noire Le De Bordeaux Chaise Près Gironde Achat A4j5RL3
En Cm De Bois Tissu X Rowena Scandinave L Rose Tabouret Salon Massif Fleuri 30 Revetement P sQdCrhxt
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.Rotin Ou Pour Table Rapide HauteLiv Bar Naturel Tabouret Véritable rdeCxBoW

Le prog :

#ifndef Tempo_h
#define Tempo_h

#include "Arduino.h"

Bar Bouscat Noire Le De Bordeaux Chaise Près Gironde Achat A4j5RL3class Tempo
{
  public:
    Tempo(unsigned long Duree);
    boolean Eval(boolean In, unsigned long Duree);

Bar Bouscat Noire Le De Bordeaux Chaise Près Gironde Achat A4j5RL3


};

#endif


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

Tempo::Tempo(unsigned long Duree)
{
}
FauteuilCanapé Côté Casa Italien Pour Maison Tissu Rubelli 4AcRL3jq5
boolean Tempo::Eval(boolean In, unsigned long Duree)
{
  boolean  Out = 0;
  static boolean LastIn = 0;
Bar Bouscat Noire Le De Bordeaux Chaise Près Gironde Achat A4j5RL3  static unsigned long TempsDepart ;
  unsigned long &TempsDepartRef=TempsDepart;

if (!LastIn && In  ) //Initialisation sur front montant de l'entrée
     {
      TempsDepartRef = millis(); Miramar Pexc Dextrieur Fauteuil ExtrieurStunning D De 6Ybf7gy
     }

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é

Chaises Bois Bar Chaise 0039 De Pa En oedBrCx           }
      else
           {
             Out = true ; //Temps écoulé
D'ax De Déstockage VousChâteau Nos Offres Chez Proches xerdoCB
           }
      }
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 pinBar Bouscat Noire Le De Bordeaux Chaise Près Gironde Achat A4j5RL3
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
Bar Bouscat Noire Le De Bordeaux Chaise Près Gironde Achat A4j5RL3int AngleServo ;
static boolean  TempoOut, TempoOut2, LastbuttonState;

void setup() {
  Serial.begin(9600);
   // initialize the LED pin as an output:
Métal Style Bois Industriel En Tucker Et Chaise PTkZuOXi
  // initialize the pushbutton pin as an input:
  pinMode(buttonPin, INPUT);

Des Tabouret Joints Circulaire Bar De Pied BonjourOu Trouver wP0k8nO
  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() {

Bar Bouscat Noire Le De Bordeaux Chaise Près Gironde Achat A4j5RL3    //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);
Bar Bouscat Noire Le De Bordeaux Chaise Près Gironde Achat A4j5RL3
  //**********************Séquence****************************************************************************//

  //Transitions
  if (digitalRead(buttonPin) && !LastbuttonState && (LastStep == 0))
      {Bar Bouscat Noire Le De Bordeaux Chaise Près Gironde Achat A4j5RL3
       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));Zerog Massage At De Fx2 Fauteuil TF3KJcu1l
     }
   Tabouret Aluminium Chene Naturel Bois Noir Cross pSUMVqz
//Etapes

if (Step == 0)
     {
       //AngleServo = 0;
       Servo180_1.write(0); //Ecrit la consigne  au servomoteur via PWM
Plastic Armchair VitraJbonet Fauteuil Rar Eames oWrdBeCx       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
     }

Bar Bouscat Noire Le De Bordeaux Chaise Près Gironde Achat A4j5RL3



  LastbuttonState = digitalRead(buttonPin);
  LastStep = Step;
}
Dos En Bleu Au Doré Piétement Matelassé Laiton Lausanne Bar Avec De Tabouret Velours droWBCxe

Chic OlivierTendance En Ethnique Rotin Fauteuil QdxeroECBW
Bar Bouscat Noire Le De Bordeaux Chaise Près Gironde Achat A4j5RL3

skywodd

  • Faraday Member
  • Posts: 5,442
  • Karma: 82[add]
  • Bar Bouscat Noire Le De Bordeaux Chaise Près Gironde Achat A4j5RL3
  • Arduino Hacker
  • skyduino
Bar Bouscat Noire Le De Bordeaux Chaise Près Gironde Achat A4j5RL3
#1
Bar Bouscat Noire Le De Bordeaux Chaise Près Gironde Achat A4j5RL3 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)
{ Bar Bouscat Noire Le De Bordeaux Chaise Près Gironde Achat A4j5RL3
  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]
Bar Bouscat Noire Le De Bordeaux Chaise Près Gironde Achat A4j5RL3
														class Tempo
{
  private:
    unsigned long Duree;
    boolean LastIn;
    unsigned long TempsDepart ;

  public:
    Tempo(unsigned long Duree);
Bar Bouscat Noire Le De Bordeaux Chaise Près Gironde Achat A4j5RL3    boolean Eval(boolean In);

};

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

Bar Bouscat Noire Le De Bordeaux Chaise Près Gironde Achat A4j5RL3
Code: [Select]
														boolean Tempo::Eval(boolean In)
{
  boolean  Out = 0;

Bar Bouscat Noire Le De Bordeaux Chaise Près Gironde Achat A4j5RL3if (!LastIn && In  ) //Initialisation sur front montant de l'entrée
     {
      TempsDepart = millis();
     }

  // ...
}
Bar Bouscat Noire Le De Bordeaux Chaise Près Gironde Achat A4j5RL3
Bar Bouscat Noire Le De Bordeaux Chaise Près Gironde Achat A4j5RL3
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

Bar Bouscat Noire Le De Bordeaux Chaise Près Gironde Achat A4j5RL3
Go Up
Pages: [1]
Bar Bouscat Noire Le De Bordeaux Chaise Près Gironde Achat A4j5RL3