Erreur Arduino

Résolu/Fermé
maxpothier Messages postés 37 Date d'inscription samedi 21 juillet 2018 Statut Membre Dernière intervention 28 décembre 2019 - 13 oct. 2018 à 10:11
maxpothier Messages postés 37 Date d'inscription samedi 21 juillet 2018 Statut Membre Dernière intervention 28 décembre 2019 - 14 oct. 2018 à 08:20
Bonjour,
je voudrais faire un programme pour qu'un bouton commande une LED. lorsqu'on appuie sur le bouton, la LED s'allume et reste allumée jusqu'à ce qu'on ré appuie sur le bouton pour éteindre la LED.(Je sais, c'est le truc basique)
j'ai fait ce programme:
void setup(){
pinMode(22, OUTPUT);
pinMode(23, INPUT);
}
int x = 0;
int bouton(){
return digitalRead(23);
}
int led(int onoff){
digitalWrite(22, onoff);
return onoff;
}
int ledValue;
void loop(){
if (bouton == 1){
ledValue = led(1 - ledValue);
while(bouton == 1){
}
}
}
et comme ce serait trop beau que ça marche direct, j'obtiens l'erreur:
ISO C++ forbids comparison between pointer and integer [-fpermissive]

2 réponses

ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 227
13 oct. 2018 à 10:48
'lut,
vers les dernières lignes de ton code quand tu utilises
bouton
tu utilises le nom de la fonction directement au lieu de l'appeler (et donc ça revient a récupérer le pointeur de la fonction, et comme tu compares avec 1, le compilateur râle).
Ajoute juste des
()
après le nom.

PS: pour le code, utilise les balises de code.
maxpothier Messages postés 37 Date d'inscription samedi 21 juillet 2018 Statut Membre Dernière intervention 28 décembre 2019 1
14 oct. 2018 à 08:20
ah oui, c'est le problème tout bête... Mais comme je m'attendais plutôt, dans ce cas, à un truc du genre 'excepted parentheses after bouton', je n'ai pas trouvé moi-même. d'ailleurs, pour les balises de code, je savais déjà qu'il fallait faire ça, mais quand j'ai vu qu'il laissait sélectionner le langage, je me suis dit que ce serait mieux de pas essayer car je voulais tout de même qu'il affiche le code, pas qu'il l'exécute!
Enfin bon, j'ai compris maintenant.

Merci!