Création d'un fonction

bonjour, je essayer de faire créer une fonction pour simplifier le code mais je ne sais pas pourquoi ça marche pas voila le premier code :

#define EA 6
#define EB 7
int b = 0; int LSA,SA, SB;
int Counter;


void Encoder() // Encoder();
{
  SA = digitalRead(EA);
  
  if (SA != LSA && SA == 1)
  {
    SB = digitalRead(EB);
    if (SA != SB)
    {
      Counter++;
      Serial.print("Counter : ");Serial.println(Counter);  
      } 
      else 
      {
      Counter--;
      Serial.print("Counter : ");Serial.println(Counter);
        }

    }   
  LSA = SA;
  
  }
  




void setup()
{
  pinMode(EA, INPUT);
  pinMode(EB, INPUT);
  Serial.begin(9600);  
  LSA = digitalRead(EA);
  }
void loop()
{
  Encoder();
  }

je veux rendre la fonction Encoder(); avec des paremetre Encoder(int input1, int iput2, int Valeur);
et voila le code :

#define EA 6
#define EB 7
int b = 0; int LSA,SA, SB;
int Counter;


void Encoder(int input1, int input2, int Valeur) // Encoder();
{
  SA = digitalRead(input1);
  
  if (SA != LSA && SA == 1)
  {
    SB = digitalRead(input2);
    if (SA != SB)
    {
      Valeur++;
      Serial.print("Counter : ");Serial.println(Valeur);  
      } 
      else 
      {
      Valeur--;
      Serial.print("Counter : ");Serial.println(Valeur);
        }

    }   
  LSA = SA;
  
  }
  




void setup()
{
  pinMode(EA, INPUT);
  pinMode(EB, INPUT);
  Serial.begin(9600);  
  LSA = digitalRead(EA);
  }
void loop()
{
  Encoder(EA, EB, Counter);
  }

:warning: post déplacé dans la partie francophone. On utilise l’anglais pour les forum généraux.

Merci de lire et appliquer « Les bonnes pratiques du Forum Francophone” pour votre question.

——-

Si vous voulez que counter soit modifié par la fonction il faut passer cette variable par référence ou alors un pointeur sur le compteur