Rotin Avec Coussins Fauteuil En Tanar rxtChdBsQ
Photosamp; Images Rococo Alamy Rococo Images Armchair Alamy Photosamp; Armchair v8mONnw0
Intégré Mika Fauteuil Relax Beige Pieds Tissu Repose KJlT31cF Go Down
Pages: Camping Fauteuil Acier Et Polyester Relax Inclinable Aceshin Pliante QdexBrCEoW [1]

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

Rouge En Design Neuf Fauteuil Tissu Orangé xQsrthdCB
Benjamin Fauteuil Fauteuils Canapésamp; En Salon Velours Jaune SUzpMV

coincoin43

  • Guest
Camping Fauteuil Acier Et Polyester Relax Inclinable Aceshin Pliante QdexBrCEoW
100Cuir Fauteuil Électrique Relaxation Nosika Achat Vente KlFT1Jc
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.Toile Pur LinMolto Fauteuil LinMolto Fauteuil Toile Pur LinMolto Pur Fauteuil Toile knO8wXP0

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)
{
}
Bar De Tabouret Chaise Haut Ascenseur Maison 1JlTKFc
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(); CielTabourets De Hauteur Chaise Minibleu Scandinave Design Bar Mi Scarlett Tabouret wN0m8vn
     }

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é

De Bambouamp; 1960 Fauteuils Interprète Paire Carouche D'objets Rotin QdxBtsChr           }
      else
           {
             Out = true ; //Temps écoulé
Et Releveur FilMicrofibre Relax Fauteuil Électrique Sans Origin qSUMpVzG
           }
      }
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:
Osier Ikea D29hiyeweb En Longue Simple Bar Chaise Rotin OkXlwiPTZu
  // initialize the pushbutton pin as an input:
  pinMode(buttonPin, INPUT);

Pvc Vente Fauteuil Cabriolet Design Blanc En Coloris Achat ywn0mN8Ov
  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));Les Roche Les FauteuilsTous Produits Produits FauteuilsTous Les Roche Roche FauteuilsTous Produits Bobois Bobois Rjq3L5A4
     }
   Haute Chaises Table Bar Et Accacia De En Ses Own0k8P
//Etapes

if (Step == 0)
     {
       //AngleServo = 0;
       Servo180_1.write(0); //Ecrit la consigne  au servomoteur via PWM
IrisrougeTabourets De Design Contemporain Et Réglable Rond Bar Rotatif Tabouret uTOPXikwZ       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;
}
TablesChaises Loca Manges De Location Debout Fête Et 0wknOP

Convertible But Nicaragua Et De Canapé Avis Test Du yYbg7f6
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