Créer fonction dans plateforme io pour ESP32

Bonjour,
Je suis un débutant en programmation, aucune formation de base.
J’essaye de programmer un distributeur de croquettes pour mon chat.
J’utilise une carte ESP32 D1 R1 et je programme sous plateforme IO.
Quand je créé une fonction, au moment de compiler, j’ai l’erreur suivante :
src\main.cpp:9:11: error: ‘Fonction’ was not declared in this scope
Je dois faire une erreur très basique, mais malgré pas mal de recherches je n’ai toujours pas compris laquelle…
Ci-dessous un essai hyper basique qui me donne cette erreur include <Arduino.h>
void setup() {
// put your setup code here, to run once: }
void loop() {
Fonction(); }
void Fonction(void) {
Serial.print(“OK”); }
Merci pour votre aide.

On ne code pas avec PlatformIO comme avec IDE ARDUINO.
Si la fonction est placée avant son utilisation, donc avant loop(), cela marchera.
Sinon, se renseigner sur la notion de prototype peut être intéressant.

En C et Cpp le compilateur doit connaître l’existence de toutes les fonctions avant qu’elles ne soient appelées dans le programme, sinon il génère une erreur.

Cela se fait de deux façons :
1 : la fonction est décrite avant la fonction main() qui est la fonction de démarrage du programme.
Pas de chance aussi bien l’IDE arduino que PlatformIO cache cette fonction main(), mais Ils la créé en interne.
2 : La fonction est “annoncé” avant la fonction main(), mais décrite plus loin, n’importe où dans le fichier source.

L’Ide Arduino possède un mécanisme qui fait cette déclaration pour toi, PlatformIO ne le fait pas, c’est à toi de le faire.

Un bon conseil si tu veux développer sur PlatformIO, qui est très bien, recherches un tuto d’initiation en C, même pas la peine de prendre du Cpp les règles sur ce sujet sont les mêmes.

Il est utile de connaître la vraie structure d’un fichier C ou Cpp : celle qui est réellement transmise au compilateur.

Un site de documentation qui est pas mal et en français : https://c.developpez.com/cours/
Ce site possède aussi un forum arduino, mais qui est bien moins actif que le notre : https://www.developpez.net/forums/f2094/general-developpement/programmation-systeme/embarque/arduino/