IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Incrémentation non prise en compte.


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Photographe illustrateur
    Inscrit en
    Mai 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Photographe illustrateur
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2013
    Messages : 16
    Par défaut Incrémentation non prise en compte.
    Bonjour,

    J'ai presque finis mon programme pour un rail time laps photo. Et je bute sur un problème.

    J'ai créer des incrémentations dans la boucle loop, elles sont bien affiché sur l'écran lcd mais pas prise en compte par le programme après le changement des valeurs avec les boutons.

    Ma question est comment fixé rafraîchir les incrémentations dans :

    int rpm;
    int nombreDePas;
    int tempsDePausePhoto;


    ???

    Cordialement Alexandre.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    #include <SerialLCD.h>
    #include <SoftwareSerial.h> 
     
    #define valeurMin 0
    #define valeurMax 202
     
    volatile int rpm;
    int nombreDePas;
    int tempsDePausePhoto;
    int compteur;
     
    #include <Stepper.h>
    int enA  = 10;  // Enable pin 10 on Motor Control Shield
    int enB  = 11;  // Enable pin 11 on Motor Control Shield
    int dirA = 12;  // Direction pin dirA on Motor Control Shield
    int dirB = 13;  // Direction pin dirB on Motor Control Shield
    const int stepsPerRevolution = nombreDePas;
    Stepper myStepper(stepsPerRevolution, dirA, dirB);
     
    //Commande
    int btnS1 = 7;  // Pin for button S1
    int btnS2 = 6;  // Pin for button S2
    int btnS3 = A5;  // Pin for button S3
    int interupteur = 8;
    int analogValue = 4;
     
    //LCD
     
    SerialLCD slcd(0,1);
     
    void setup()
     
    {
     
      pinMode(interupteur, OUTPUT);
      pinMode(btnS1, INPUT);
      pinMode(btnS2, INPUT);
      pinMode(btnS3, INPUT);
      pinMode(7,INPUT);
      digitalWrite(7, HIGH);
      pinMode(6,INPUT);
      digitalWrite(6, HIGH);
     
     
      slcd.begin();// set up :
     
      LCD();
     
     
      //LCD
     
        // set the speed at 60 rpm:
      myStepper.setSpeed(rpm);
      // Enable power to the motor
      pinMode(enA, OUTPUT);
      digitalWrite (enA, HIGH);
      pinMode(enB, OUTPUT);
      digitalWrite (enB, HIGH);
     
     
      //interupteur
     
      //btn1
     
    }
     
    void loop()
     
     
     
    {
     
     
      if (digitalRead(interupteur)== HIGH){
     
        slcd.noBacklight();
        Moteurar();
        slcd.setCursor(8,0);
        if (compteur<valeurMax)++compteur,delay(150);
        LCD();
        delay(100);
        delay (tempsDePausePhoto*1000);
     
     
      }
     
      if (digitalRead(btnS1)==LOW)
      { 
        slcd.backlight();
        if (rpm<valeurMax)++rpm,delay(50);
        if(rpm > 201) { 
          rpm = 0;
        }    
        LCD();
      }
     
     
      if (digitalRead(btnS2)==LOW)
      { 
        slcd.backlight();
        if (tempsDePausePhoto<valeurMax)++tempsDePausePhoto,delay(50);
        if(tempsDePausePhoto > 201) { 
          tempsDePausePhoto = 0;
        }    
        LCD();
      }
     
     
      if (digitalRead(btnS3)==HIGH)
      { 
        slcd.backlight();
        if (nombreDePas<valeurMax)++nombreDePas,delay(150);
        if(nombreDePas > 201) { 
          nombreDePas = 0;
        }    
        LCD();
      }
    }
     
     
    void LCD(){
     
      slcd.setCursor(0,1);
      slcd.print("Rpm:");
      slcd.print(rpm,DEC);
      slcd.setCursor(8,1);
      slcd.print("PaP:");
      slcd.print(nombreDePas,DEC);
      slcd.setCursor(0,0);
      slcd.print("Tdp:");
      slcd.print(tempsDePausePhoto,DEC);
      slcd.setCursor(8,0);
      slcd.print("Cpt:");
      slcd.print(compteur,DEC);
      delay(100);
    }
     
     
    void Moteurav()   // Moteur Av
    {
      myStepper.step(stepsPerRevolution);
    }
    void Moteurar()   // Moteur Ar
    {
      myStepper.step(-stepsPerRevolution);
    }

  2. #2
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut
    Bonjour,

    En C, les données sont transmises par copie.
    Si tu veux que tes variables soient modifié ou puissent être "mises à jour", il faut les transmettre par adresse en utilisant des pointeur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    void foo(int i); // lance un thread.
     
    int i = 0;
    foo(i);
    i++;
    // dans le thread lancé par foo, i vaudra 0

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    void foo(int * ptr); // lance un thread.
     
    int i = 0;
    foo(& i);
    i++;
    // dans le thread lancé par foo, *ptr vaudra 1 après qu'on ai exécuté i++;
    Si les fonctions que tu utiles font partie de l'API de la bibliothèque que tu utilises, il te faut alors rappeler ces fonctions à chaque modifications de tes variables pour quelles soient prises en compte.

  3. #3
    Membre averti
    Homme Profil pro
    Photographe illustrateur
    Inscrit en
    Mai 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Photographe illustrateur
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2013
    Messages : 16
    Par défaut
    Un grand merci pour ta réponse.

    Je test ça de suite. J'ai pas tout bien compris, mais tu me met sur la voie.

    Bonne soirée

  4. #4
    Membre averti
    Homme Profil pro
    Photographe illustrateur
    Inscrit en
    Mai 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Photographe illustrateur
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2013
    Messages : 16
    Par défaut
    Pourrais-tu me montré un exemple de pointage avec un int par exemple celui là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
     
    int rpm;
     
    void setup()
     
    pinMode(btnS1, INPUT);
     
    void loop()
     
    {
     while (digitalRead(btnS1)==LOW)
      { 
        slcd.backlight();
        if(rpm<valeurMax)++rpm,delay(50);
        if(rpm > 201) { 
          rpm = 0;
        }    
        LCD();
      }
    Merci :-)

  5. #5
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut
    Bonjour,

    Je pense que ce lien pourrait t'aider.

  6. #6
    Membre averti
    Homme Profil pro
    Photographe illustrateur
    Inscrit en
    Mai 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Photographe illustrateur
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2013
    Messages : 16
    Par défaut
    Merci beaucoup pour ton aide je devrais pouvoir m'en sortir maintenant.

    Bonne journée :-)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Couleur non prise en compte en exécution
    Par BECHE dans le forum Langage
    Réponses: 2
    Dernier message: 22/12/2005, 18h14
  2. Installation SP2 + RAM non prise en compte
    Par laure_belette dans le forum Windows XP
    Réponses: 3
    Dernier message: 13/10/2005, 12h46
  3. [css] Feuille de style non prise en compte
    Par Neuromancien2 dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 29/06/2005, 11h49
  4. [netbeans] Modifications non prises en compte
    Par nadass dans le forum NetBeans
    Réponses: 6
    Dernier message: 07/04/2005, 13h49
  5. Lecture de fichier - dernière ligne non prise en compte
    Par JulienPles dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 16/03/2005, 11h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo