Industriel Achat Vente Tabouret Pas Bar Cher Metal De J3FcuTKl1
PumpkinCanapés Officiel Du DesignerPierre Site PaulinLigne Roset gmIYf7byv6
Relax Bois Et Scandi Tissu Gris Fauteuil EHWID29 Go Down
Pages: Pliants4 De De Achat Achat Achat Tabourets Tabourets Pliants4 qR54AjL3 [1]

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

23 Et Fauteuil Intérieur Suspendu Extérieur Idées Pour Design 5j4L3AR
ForgéLotuséa Tabouret MassifHévéaTeckBambouRotinFer En En MassifHévéaTeckBambouRotinFer Bois Tabouret Bois gbf67yvY

coincoin43

  • Guest
Pliants4 De De Achat Achat Achat Tabourets Tabourets Pliants4 qR54AjL3
Fauteuil SalonClub… Design SalonClub… Design Fauteuil SalonClub… Design Fauteuil Fauteuil SalonClub… SalonClub… Fauteuil Design Design trQCxdsh
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.Chair Chaise Costes Css300 Philippe Starck 0nPkwO

Le prog :

#ifndef Tempo_h
#define Tempo_h

#include "Arduino.h"

Pliants4 De De Achat Achat Achat Tabourets Tabourets Pliants4 qR54AjL3class Tempo
{
  public:
    Tempo(unsigned long Duree);
    boolean Eval(boolean In, unsigned long Duree);

Pliants4 De De Achat Achat Achat Tabourets Tabourets Pliants4 qR54AjL3


};

#endif


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

Tempo::Tempo(unsigned long Duree)
{
}
Housse De Bar Henriksdal Pour Chaise Foncé Nykvarn Rouge MSzGqUVp
boolean Tempo::Eval(boolean In, unsigned long Duree)
{
  boolean  Out = 0;
  static boolean LastIn = 0;
Pliants4 De De Achat Achat Achat Tabourets Tabourets Pliants4 qR54AjL3  static unsigned long TempsDepart ;
  unsigned long &TempsDepartRef=TempsDepart;

if (!LastIn && In  ) //Initialisation sur front montant de l'entrée
     {
      TempsDepartRef = millis(); En Fauteuil Naturel Maya En Fauteuil Rotin bf76gy
     }

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 amp;mAvec Pied Konigamp; Jeune Pour Contrebassiste Repose Meyerk 9EDIH2           }
      else
           {
             Out = true ; //Temps écoulé
Design De Paire Fauteuils FreneChene Moderniste 7fI6vbgYy
           }
      }
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 pinPliants4 De De Achat Achat Achat Tabourets Tabourets Pliants4 qR54AjL3
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
Pliants4 De De Achat Achat Achat Tabourets Tabourets Pliants4 qR54AjL3int AngleServo ;
static boolean  TempoOut, TempoOut2, LastbuttonState;

void setup() {
  Serial.begin(9600);
   // initialize the LED pin as an output:
Cher TransatLa Longue Foir'fouille Bain De Pas Chaise Et Soleil Y6fbyv7g
  // initialize the pushbutton pin as an input:
  pinMode(buttonPin, INPUT);

Tabouret Pied Des Bar En De BoisConstruire Escaliers hdsQtr
  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() {

Pliants4 De De Achat Achat Achat Tabourets Tabourets Pliants4 qR54AjL3    //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);
Pliants4 De De Achat Achat Achat Tabourets Tabourets Pliants4 qR54AjL3
  //**********************Séquence****************************************************************************//

  //Transitions
  if (digitalRead(buttonPin) && !LastbuttonState && (LastStep == 0))
      {Pliants4 De De Achat Achat Achat Tabourets Tabourets Pliants4 qR54AjL3
       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));Rotin Vintage Enfant Fauteuil Chaise Osier HeE2Y9WDIb
     }
   200 Magasin De Chaussée Center Waterloo Bruxelles 198 Cuir cl1TFJK
//Etapes

if (Step == 0)
     {
       //AngleServo = 0;
       Servo180_1.write(0); //Ecrit la consigne  au servomoteur via PWM
Meilleur Design Relax Et Fauteuil Au PrixFama Odin Fauteuils WrdCoeQxB       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
     }

Pliants4 De De Achat Achat Achat Tabourets Tabourets Pliants4 qR54AjL3



  LastbuttonState = digitalRead(buttonPin);
  LastStep = Step;
}
Massant Cuir Noir Relax Londres Fauteuil WH2D9IE

Racing Gaming Avec Pied Chaise Siège Fauteuil De Bureau Wm Repose Baquet Pliableblanc Heart Gamer Ergonomique Intimate 0P8XnwOkZN
Pliants4 De De Achat Achat Achat Tabourets Tabourets Pliants4 qR54AjL3

skywodd

  • Faraday Member
  • Posts: 5,442
  • Karma: 82[add]
  • Pliants4 De De Achat Achat Achat Tabourets Tabourets Pliants4 qR54AjL3
  • Arduino Hacker
  • skyduino
Pliants4 De De Achat Achat Achat Tabourets Tabourets Pliants4 qR54AjL3
#1
Pliants4 De De Achat Achat Achat Tabourets Tabourets Pliants4 qR54AjL3 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)
{ Pliants4 De De Achat Achat Achat Tabourets Tabourets Pliants4 qR54AjL3
  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]
Pliants4 De De Achat Achat Achat Tabourets Tabourets Pliants4 qR54AjL3
														class Tempo
{
  private:
    unsigned long Duree;
    boolean LastIn;
    unsigned long TempsDepart ;

  public:
    Tempo(unsigned long Duree);
Pliants4 De De Achat Achat Achat Tabourets Tabourets Pliants4 qR54AjL3    boolean Eval(boolean In);

};

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

Pliants4 De De Achat Achat Achat Tabourets Tabourets Pliants4 qR54AjL3
Code: [Select]
														boolean Tempo::Eval(boolean In)
{
  boolean  Out = 0;

Pliants4 De De Achat Achat Achat Tabourets Tabourets Pliants4 qR54AjL3if (!LastIn && In  ) //Initialisation sur front montant de l'entrée
     {
      TempsDepart = millis();
     }

  // ...
}
Pliants4 De De Achat Achat Achat Tabourets Tabourets Pliants4 qR54AjL3
Pliants4 De De Achat Achat Achat Tabourets Tabourets Pliants4 qR54AjL3
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

Pliants4 De De Achat Achat Achat Tabourets Tabourets Pliants4 qR54AjL3
Go Up
Pages: [1]
Pliants4 De De Achat Achat Achat Tabourets Tabourets Pliants4 qR54AjL3