Position d'une fonction ... problème

j'ai créé une fonction qui fonctionne parfaitement si elle est placée devant le loop() mais qui refuse d'être compilée si je la place derrière ... pourquoi?

Code ?
Ide utilisée ?

Je pense que les messages épinglés n'ont pas été lus.

Parce que vous appelez une fonction que le compilo ne connaît pas encore.

Si je vous dis “venez prendre au verre au bar” vous allez me dire “mais quel bar”? C’est un peu la même chose en informatique. Il faut déclarer ce que l’on souhaite utiliser avant l’utilisation (attention déclarer n’est pas là même chose que définir)

L’IDE essaye de faire des bidouilles pour préparer ses en têtes afin d’éviter ces soucis et pré-déclarer les prototypes des fonctions mais ça ne fonctionne pas tout le temps

Donc ... mettez les fonctions au dessus de la loop et/ou déclarez vos prototypes

Salut,

Tu as quelle version de l'IDE arduino, voici un petit programme qui appel une fonction placé aprés le loop, et pas de problème lors de la compilation.

void setup()
{
  Serial.begin(9600);                                                                                 
  Serial.println(F("pressure reading off SKU237545 SENSOR"));                                         
  delay (2000);
 }
 
 
void loop(void)
{
  getPressure();
}

void getPressure()
{
  unsigned long pressurecount = 0;
  float transducer = 0;
  float pressureTotal = 0;
  float outputBAR = 0;
  float barAVG =0;
  String  barAVGStr;

  Serial.println(F("<<< Getting Pressure Values... >>>"));
  for (int a = 0; a < 100; a++)
  {
    transducer = analogRead(A0);
    outputBAR = ((transducer - 102) * 12.0 / 819.0);   
    Serial.print("hPar: ");
    Serial.println(outputBAR, 3); 
    pressureTotal = pressureTotal + outputBAR;
    pressurecount++;
  }
  barAVG = pressureTotal / pressurecount;
  Serial.print(F("<<< Current Running Pressure = ")); 
  Serial.print(barAVG, 2);
  Serial.println(F(" hPa"));
  barAVGStr = String(barAVG, 2);
  barAVG = 0;
}

hameau:
Tu as quelle version de l'IDE arduino, voici un petit programme qui appel une fonction placé aprés le loop, et pas de problème lors de la compilation.

comme dit plus haut, c'est parce que l'IDE fait des trucs pour vous mais ça ne marche pas à tous les coups

Bonjour,

J'ai déjà eu le problème.
Comme le dit J-M-L normalement l'IDE s'occupe de la déclaration des fonctions, mais quelquefois ça ne fonctionne pas (je ne saurais dire pourquoi) et on a un message indiquant qu'il ne connait pas la fonction.
Dans ce cas, il suffit de déclarer la fonction avant son utilisation.

La solution: prendre le temps de potasser un tuto d'initiation au C qui permet de comprendre ce genre de problèmes hyper basiques.

L'IDE c'est :
Un ensemble de fonctions et de classes qui aident à gérer le microcontroleur
Un machin qui modifie (dans ton dos) les fonctions setup() et loop() et les fonctions personnelles que tu as écris pour en faire un vrai programme C/C++
Un truc qui gère des programmes annexes pour la compilation et le téléchargement dans le micro .

Autant prendre une heure ou deux pour apprendre la structure d'un fichier C/C++ ce sera beaucoup de temps gagné par la suite.