Bonjour,
Une question toute bête :
Peut-on appeler un Programme Arduino dans un Programme Arduino?
Exemple : dans mon programme de gestion de ma LED RGB, j'ai plusieurs mode de défilement des couleurs, qui sont déjà tous dans un fichier Arduino à part.
Y-a-t-il un moyen d'appeler ces fichiers plutôt que de refaire des void avec les fonctions?
La manière propre de faire est de mettre les déclarations de fonctions dans un fichier .h (mesfontions.h) et les implémentations dans un .c ou .cpp (mes fonctions.cpp)...
Ensuite en le mettant dans le dossier ou est ton fichier .pde ou .ino, tu pourras y avoir accès en faisant un :
#include "mesfonctions.h"
Je te conseille d'aller faire un tour sur le sdz info sur le tuto du C pour plus de détails/infos
Donc pour mon programme qui sert à allumer une LED RGB sur différents modes,
j'ai créer un fichier .cpp par mode : couleur_tournante.cpp, couleur_bp.cpp, couleur_choix.cpp, et enfin eteindre.cpp
j'ai créer un fichier fonctions.h, qui regroupe donc cela
et j'ai mis un include dans mon fichier .ino
Seulement quand je veux compiler, il me renvoie vers mes fonctions (cad les fichiers .cpp) en me disant que les variables ne sont pas déclarées
Or elle le sont toutes dans le fichier .ino.
Ce découpage impose-t-il qu'une variable nécessaire à une fonction soit déclarée dans le fichier .cpp où la fonction est définie?
Si oui, je n'ai plus intérêt à découper puisque mes variables sont presque toutes communes aux différentes fonctions.
Il faut que dans ton fichier .h tu mettes les noms des fonctions (les déclarations) et dans un seul .cpp qui a le même nom que le .h tu mettes toutes les implémentations, bas dans plusieurs .cpp
ou alors faire un .h par .cpp, qui contient uniquement les déclarations des fonctions définies dans le .cpp correspondant...
Le fait de séparer ton .h unique en plusieurs permettra de gagner du temps à la compilation, si tu modifie une fonction, tu modifie un .h, qui entraine la recompilation du .cpp qui va avec, et ceux qui utilise les fonctions, mais pas les autres .cpp qui n'ont rien demandé à personne
un peu de code pourrait aider à mieux comprendre le problème.
Tu as des espèces de variables globales utilisées par plusieurs(ou toutes) de tes fonctions c'est ça? (si oui c'est pas bien :p)
C'est exactement ça :/
En fait mes trois fonctions gère la même led,
A chaque appuie sur un BP on change de mode de fonctionnement,
Le code principale
//Illumination d'une Led RGB
void setup() //Initialisation
{
pinMode(vert,OUTPUT);
pinMode(rouge,OUTPUT);
pinMode(bleu,OUTPUT);
pinMode(pot,INPUT);
pinMode(bp,INPUT);
eteindre();
}
void loop ()
{
vbp= digitalRead(bp); //Lecture de l'état du BP
if ((vbp != vbpmem)&&(vbp == LOW)) //si on appuie sur le BP
{
mode++; //On incrémente la variable mode
}
vbpmem=vbp; //on mémorise l'état du bouton
if (mode == nbrmode) //Qd la variable mode vaut nbrmode on la repasse à zéro (ie quand on attend le dernier mode)
{
mode=0;
}
switch (mode) //Application du mode
{
case 0:
eteindre(); //passe toutes les leds à 255 donc éteintes
break;
case 1:
couleur_tournante(); //lance le programme de "couleur tournante"
break;
case 2:
couleur_bp(); //lance le programme pour le choix de couleur
break;
case 3:
couleur_choix(); //Lance le programme pour le choix de couleur, mais de manière plus fine
break;
}
}
void couleur_tournante()
{
for (unsigned int i=0 ; (i<240)&&(vbp1==vbpmem);)
//Un cycle est fait de 240 itérations, donc un cycle pour une couleur dure 80 tops
{
valpot=analogRead(pot); //on récupère la valeur du Pot
vit=map(valpot,0,1023,0,500); //on échelonne de 0 à 500ms
if((millis()-temps)>vit)
{
i++;
temps=millis();
}
vbp1= digitalRead(bp);
// VERT
vv1=map(i,0,80,255,0); //vv1 représente la phase de croissance du vert (40tops)
vv2=map(i,80,160,0,255); //vv2phase décroissante
vv=min(vv1,vv2); //On prend le min de vv1 et vv2
vv=min(vv,255); //On borne à un max de 255
// ROUGE
vr1=map(i,0,80,0,255);
vr2=map(i,160,240,255,0);
vr=min(vr1,vr2);
vr=min(vr,255);
// BLEU
vb1=map(i,80,160,255,0);
vb2=map(i,160,240,0,255);
vb=min(vb1,vb2);
vb=min(vb,255);
analogWrite(bleu,vb); //on envoie les valeurs respectives aux Cathodes
analogWrite(vert,vv);
analogWrite(rouge,vr);
vbp=analogRead(bp);
}
}
Voici mes variables :
Presques toutes sont utilisées au moins deux fois, ne serait-ce que parce que toutes mes fonctions agissent sur "vr" "vv" "vb" les valeurs pour les leds rouge, vert, bleu
const int rouge=9; //broche rouge au pin 9
const int vert=10; //broche vert au pin 10
const int bleu=11; //broche bleue au pin 11
//Variables pour le Vert
unsigned int vv=255;
unsigned int vv1=255;
unsigned int vv2=255;
//Variables pour le Rouge
unsigned int vr=255;
unsigned int vr1=255;
unsigned int vr2=255;
//Variables pour le Bleu
unsigned int vb=255;
unsigned int vb1=255;
unsigned int vb2=255;
//Potentiomètre
const int pot=0;
long valpot=0;
unsigned long vit=0;
unsigned long temps=0;
//Bouton Poussoir
const int bp=4;
boolean vbp=0;
boolean vbp1=0;
boolean vbpmem=0;
int mode = 0;
//Nombre de mode
int nbrmode=4;
int couleur=0;
Pour ce qui est du découpage .h et .cpp, j'ai compris grâce à vos explications, Merci!
Pour mes variables, j'en déduis qu'il faut je réorganise le tout? pour qu'elle soient propre à chaque fonction et déclarées dans le .cpp correspondant.
Le problème de ces variables doublement utilisées pose-t-il un vrai problème? ou est-ce une question de propreté du code?
Le truc qui serait super (mais je sais connait pas ton niveau) se serait de créer une classe (cours de C++) et comme ça tu n'aurais plus ce problème de variables redondantes, ce serait des membres de ta classe...
Bon effectivement, je me suis un peu mis dans le langage objet,
le principe, le fonctionnement, la syntaxe me paraissent assez clair,
mais l'application ce n'est pas la même chose!
je re-posterais ici quand j'aurais approfondi le sujet
(si je le fais ^^)
Ayant un peu de temps en ce moment je me suis décidé à travailler un peu le C++, et me voilà à essayer d'utiliser les classes :
J'ai décidé de commencer par un programme "simple" mais bien sur sur Arduino pour profiter des 2 en même temps (Ce n'était peut être pas une si bonne idée!)
J'ai définit une classe "Lampe"
Ses méthodes sont éteindre, allumer, inverser, afficher_état
Ses attributs état_lampe, numéro de pin, sortie digitale ou analogique
le code de "Lampe.h"
#include "Lampe.h"
//définition des objets lampes(int pin, bool digital)
Lampe lampeA1(1,0), lampeB1(2,0), lampeC1(3,0), lampeD1(4,0), lampeG(0,0); //définitions des objets de la classe lampe
int nbrlampe=5; //5 lampes
Lampe lampe_nom[] = {lampeA1, lampeB1, lampeC1, lampeD1, lampeG}; //Noms des objets organisés dans un tableau
void setup()
{
void OFF(); //Eteindre toutes les lampes référencées dans le tableau
for (int j=0; j < nbrlampe; j++) //Affecter à toutes les lampes du tableau au pin auquel elles sont branchées
{
lampe_nom[j].affecter_pin();
}
}
void loop()
{
for (int k=0; k < nbrlampe; k++) //On allume puis éteint chaque lampe tour à tour
{
lampe_nom[k].allumer();
delay(1000);
lampe_nom[k].eteindre();
}
}
void OFF() //Eteindre toutes les lampes référencées dans le tableau
{
for(int i=0; i < nbrlampe; i++)
{
lampe_nom[i].eteindre();
}
}
Bien évidemment, je n'ai pas réussi mon premier programme OO du premier coup
J'obtiens donc 1kg d'erreurs indigestes représentées par une erreur générale dans arduino : "Error Compling"
Je pense que la première chose qu'il manque ce sont des librairies, mais je ne sais pas lesquelles...
Si vous pouvez donc me filer un petit coup de main
Merci d'avance!
Ci dessous, tout le log (attention ca pique un peu les yeux)
In file included from d:/arduino/arduino-1.0.1-windows/arduino-1.0.1/hardware/tools/avr/lib/gcc/../../avr/include/stdlib.h:47,
from D:\Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino/Arduino.h:4,
from eclairage_salon_bureau.cpp:4:
d:\arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware\tools\avr\bin\../lib/gcc/avr/4.3.2/include/stddef.h:214: error: two or more data types in declaration of 'size_t'
In file included from D:\Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino/Arduino.h:4,
from eclairage_salon_bureau.cpp:4:
d:/arduino/arduino-1.0.1-windows/arduino-1.0.1/hardware/tools/avr/lib/gcc/../../avr/include/stdlib.h:143: error: 'size_t' has not been declared
d:/arduino/arduino-1.0.1-windows/arduino-1.0.1/hardware/tools/avr/lib/gcc/../../avr/include/stdlib.h:144: error: 'size_t' has not been declared
d:/arduino/arduino-1.0.1-windows/arduino-1.0.1/hardware/tools/avr/lib/gcc/../../avr/include/stdlib.h:175: error: 'size_t' has not been declared
d:/arduino/arduino-1.0.1-windows/arduino-1.0.1/hardware/tools/avr/lib/gcc/../../avr/include/stdlib.h:175: error: 'size_t' has not been declared
d:/arduino/arduino-1.0.1-windows/arduino-1.0.1/hardware/tools/avr/lib/gcc/../../avr/include/stdlib.h:290: error: 'size_t' was not declared in this scope
d:/arduino/arduino-1.0.1-windows/arduino-1.0.1/hardware/tools/avr/lib/gcc/../../avr/include/stdlib.h:302: error: 'size_t' does not name a type
d:/arduino/arduino-1.0.1-windows/arduino-1.0.1/hardware/tools/avr/lib/gcc/../../avr/include/stdlib.h:319: error: 'size_t' was not declared in this scope
d:/arduino/arduino-1.0.1-windows/arduino-1.0.1/hardware/tools/avr/lib/gcc/../../avr/include/stdlib.h:319: error: 'size_t' was not declared in this scope
d:/arduino/arduino-1.0.1-windows/arduino-1.0.1/hardware/tools/avr/lib/gcc/../../avr/include/stdlib.h:319: error: initializer expression list treated as compound expression
d:/arduino/arduino-1.0.1-windows/arduino-1.0.1/hardware/tools/avr/lib/gcc/../../avr/include/stdlib.h:338: error: 'size_t' has not been declared
In file included from D:\Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino/Arduino.h:5,
from eclairage_salon_bureau.cpp:4:
d:/arduino/arduino-1.0.1-windows/arduino-1.0.1/hardware/tools/avr/lib/gcc/../../avr/include/string.h:113: error: 'size_t' has not been declared
d:/arduino/arduino-1.0.1-windows/arduino-1.0.1/hardware/tools/avr/lib/gcc/../../avr/include/string.h:114: error: 'size_t' has not been declared
d:/arduino/arduino-1.0.1-windows/arduino-1.0.1/hardware/tools/avr/lib/gcc/../../avr/include/string.h:115: error: 'size_t' has not been declared
d:/arduino/arduino-1.0.1-windows/arduino-1.0.1/hardware/tools/avr/lib/gcc/../../avr/include/string.h:116: error: 'size_t' has not been declared
d:/arduino/arduino-1.0.1-windows/arduino-1.0.1/hardware/tools/avr/lib/gcc/../../avr/include/string.h:117: error: 'size_t' has not been declared
d:/arduino/arduino-1.0.1-windows/arduino-1.0.1/hardware/tools/avr/lib/gcc/../../avr/include/string.h:117: error: 'size_t' has not been declared
d:/arduino/arduino-1.0.1-windows/arduino-1.0.1/hardware/tools/avr/lib/gcc/../../avr/include/string.h:118: error: 'size_t' has not been declared
d:/arduino/arduino-1.0.1-windows/arduino-1.0.1/hardware/tools/avr/lib/gcc/../../avr/include/string.h:119: error: 'size_t' has not been declared
d:/arduino/arduino-1.0.1-windows/arduino-1.0.1/hardware/tools/avr/lib/gcc/../../avr/include/string.h:120: error: 'size_t' has not been declared
d:/arduino/arduino-1.0.1-windows/arduino-1.0.1/hardware/tools/avr/lib/gcc/../../avr/include/string.h:128: error: 'size_t' does not name a type
d:/arduino/arduino-1.0.1-windows/arduino-1.0.1/hardware/tools/avr/lib/gcc/../../avr/include/string.h:130: error: 'size_t' does not name a type
d:/arduino/arduino-1.0.1-windows/arduino-1.0.1/hardware/tools/avr/lib/gcc/../../avr/include/string.h:131: error: 'size_t' does not name a type
d:/arduino/arduino-1.0.1-windows/arduino-1.0.1/hardware/tools/avr/lib/gcc/../../avr/include/string.h:132: error: 'size_t' does not name a type
d:/arduino/arduino-1.0.1-windows/arduino-1.0.1/hardware/tools/avr/lib/gcc/../../avr/include/string.h:134: error: 'size_t' has not been declared
d:/arduino/arduino-1.0.1-windows/arduino-1.0.1/hardware/tools/avr/lib/gcc/../../avr/include/string.h:135: error: 'size_t' has not been declared
d:/arduino/arduino-1.0.1-windows/arduino-1.0.1/hardware/tools/avr/lib/gcc/../../avr/include/string.h:136: error: 'size_t' has not been declared
d:/arduino/arduino-1.0.1-windows/arduino-1.0.1/hardware/tools/avr/lib/gcc/../../avr/include/string.h:137: error: 'size_t' has not been declared
d:/arduino/arduino-1.0.1-windows/arduino-1.0.1/hardware/tools/avr/lib/gcc/../../avr/include/string.h:138: error: 'size_t' does not name a type
d:/arduino/arduino-1.0.1-windows/arduino-1.0.1/hardware/tools/avr/lib/gcc/../../avr/include/string.h:143: error: 'size_t' does not name a type
In file included from D:\Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino/Arduino.h:8,
from eclairage_salon_bureau.cpp:4:
d:/arduino/arduino-1.0.1-windows/arduino-1.0.1/hardware/tools/avr/lib/gcc/../../avr/include/avr/pgmspace.h:744: error: 'size_t' has not been declared
d:/arduino/arduino-1.0.1-windows/arduino-1.0.1/hardware/tools/avr/lib/gcc/../../avr/include/avr/pgmspace.h:745: error: 'size_t' has not been declared
d:/arduino/arduino-1.0.1-windows/arduino-1.0.1/hardware/tools/avr/lib/gcc/../../avr/include/avr/pgmspace.h:746: error: 'size_t' has not been declared
d:/arduino/arduino-1.0.1-windows/arduino-1.0.1/hardware/tools/avr/lib/gcc/../../avr/include/avr/pgmspace.h:747: error: 'size_t' has not been declared
d:/arduino/arduino-1.0.1-windows/arduino-1.0.1/hardware/tools/avr/lib/gcc/../../avr/include/avr/pgmspace.h:747: error: 'size_t' has not been declared
d:/arduino/arduino-1.0.1-windows/arduino-1.0.1/hardware/tools/avr/lib/gcc/../../avr/include/avr/pgmspace.h:748: error: 'size_t' has not been declared
d:/arduino/arduino-1.0.1-windows/arduino-1.0.1/hardware/tools/avr/lib/gcc/../../avr/include/avr/pgmspace.h:756: error: 'size_t' does not name a type
d:/arduino/arduino-1.0.1-windows/arduino-1.0.1/hardware/tools/avr/lib/gcc/../../avr/include/avr/pgmspace.h:757: error: 'size_t' does not name a type
d:/arduino/arduino-1.0.1-windows/arduino-1.0.1/hardware/tools/avr/lib/gcc/../../avr/include/avr/pgmspace.h:758: error: 'size_t' does not name a type
d:/arduino/arduino-1.0.1-windows/arduino-1.0.1/hardware/tools/avr/lib/gcc/../../avr/include/avr/pgmspace.h:759: error: 'size_t' does not name a type
d:/arduino/arduino-1.0.1-windows/arduino-1.0.1/hardware/tools/avr/lib/gcc/../../avr/include/avr/pgmspace.h:760: error: 'size_t' does not name a type
d:/arduino/arduino-1.0.1-windows/arduino-1.0.1/hardware/tools/avr/lib/gcc/../../avr/include/avr/pgmspace.h:761: error: 'size_t' has not been declared
d:/arduino/arduino-1.0.1-windows/arduino-1.0.1/hardware/tools/avr/lib/gcc/../../avr/include/avr/pgmspace.h:762: error: 'size_t' has not been declared
d:/arduino/arduino-1.0.1-windows/arduino-1.0.1/hardware/tools/avr/lib/gcc/../../avr/include/avr/pgmspace.h:763: error: 'size_t' has not been declared
d:/arduino/arduino-1.0.1-windows/arduino-1.0.1/hardware/tools/avr/lib/gcc/../../avr/include/avr/pgmspace.h:764: error: 'size_t' has not been declared
d:/arduino/arduino-1.0.1-windows/arduino-1.0.1/hardware/tools/avr/lib/gcc/../../avr/include/avr/pgmspace.h:768: error: 'size_t' does not name a type
In file included from D:\Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino/Print.h:24,
from D:\Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino/Stream.h:26,
from D:\Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino/HardwareSerial.h:27,
from D:\Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino/Arduino.h:193,
from eclairage_salon_bureau.cpp:4:
d:/arduino/arduino-1.0.1-windows/arduino-1.0.1/hardware/tools/avr/lib/gcc/../../avr/include/stdio.h:685: error: 'size_t' has not been declared
d:/arduino/arduino-1.0.1-windows/arduino-1.0.1/hardware/tools/avr/lib/gcc/../../avr/include/stdio.h:691: error: 'size_t' has not been declared
d:/arduino/arduino-1.0.1-windows/arduino-1.0.1/hardware/tools/avr/lib/gcc/../../avr/include/stdio.h:713: error: 'size_t' has not been declared
d:/arduino/arduino-1.0.1-windows/arduino-1.0.1/hardware/tools/avr/lib/gcc/../../avr/include/stdio.h:719: error: 'size_t' has not been declared
d:/arduino/arduino-1.0.1-windows/arduino-1.0.1/hardware/tools/avr/lib/gcc/../../avr/include/stdio.h:762: error: 'size_t' does not name a type
d:/arduino/arduino-1.0.1-windows/arduino-1.0.1/hardware/tools/avr/lib/gcc/../../avr/include/stdio.h:840: error: 'size_t' does not name a type
In file included from D:\Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino/Printable.h:23,
from D:\Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino/Print.h:27,
from D:\Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino/Stream.h:26,
from D:\Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino/HardwareSerial.h:27,
from D:\Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino/Arduino.h:193,
from eclairage_salon_bureau.cpp:4:
D:\Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino/new.h:10: error: declaration of 'operator new' as non-function
D:\Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino/new.h:10: error: 'size_t' was not declared in this scope
In file included from D:\Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino/Print.h:27,
from D:\Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino/Stream.h:26,
from D:\Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino/HardwareSerial.h:27,
from D:\Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino/Arduino.h:193,
from eclairage_salon_bureau.cpp:4:
D:\Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino/Printable.h:36: error: 'size_t' does not name a type
In file included from D:\Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino/Stream.h:26,
from D:\Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino/HardwareSerial.h:27,
from D:\Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino/Arduino.h:193,
from eclairage_salon_bureau.cpp:4:
D:\Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino/Print.h:38: error: 'size_t' does not name a type
D:\Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino/Print.h:39: error: 'size_t' does not name a type
D:\Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino/Print.h:48: error: 'size_t' does not name a type
D:\Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino/Print.h:49: error: 'size_t' does not name a type
D:\Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino/Print.h:50: error: 'size_t' does not name a type
D:\Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino/Print.h:52: error: 'size_t' does not name a type
D:\Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino/Print.h:53: error: 'size_t' does not name a type
D:\Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino/Print.h:54: error: 'size_t' does not name a type
D:\Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino/Print.h:55: error: 'size_t' does not name a type
D:\Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino/Print.h:56: error: 'size_t' does not name a type
D:\Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino/Print.h:57: error: 'size_t' does not name a type
D:\Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino/Print.h:58: error: 'size_t' does not name a type
D:\Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino/Print.h:59: error: 'size_t' does not name a type
D:\Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino/Print.h:60: error: 'size_t' does not name a type
D:\Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino/Print.h:61: error: 'size_t' does not name a type
D:\Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino/Print.h:62: error: 'size_t' does not name a type
D:\Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino/Print.h:64: error: 'size_t' does not name a type
D:\Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino/Print.h:65: error: 'size_t' does not name a type
D:\Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino/Print.h:66: error: 'size_t' does not name a type
D:\Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino/Print.h:67: error: 'size_t' does not name a type
D:\Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino/Print.h:68: error: 'size_t' does not name a type
D:\Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino/Print.h:69: error: 'size_t' does not name a type
D:\Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino/Print.h:70: error: 'size_t' does not name a type
D:\Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino/Print.h:71: error: 'size_t' does not name a type
D:\Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino/Print.h:72: error: 'size_t' does not name a type
D:\Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino/Print.h:73: error: 'size_t' does not name a type
D:\Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino/Print.h:74: error: 'size_t' does not name a type
D:\Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino/Print.h:75: error: 'size_t' does not name a type
In file included from D:\Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino/HardwareSerial.h:27,
from D:\Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino/Arduino.h:193,
from eclairage_salon_bureau.cpp:4:
D:\Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino/Stream.h:62: error: 'size_t' has not been declared
D:\Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino/Stream.h:67: error: 'size_t' has not been declared
D:\Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino/Stream.h:67: error: 'size_t' has not been declared
D:\Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino/Stream.h:76: error: 'size_t' does not name a type
D:\Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino/Stream.h:80: error: 'size_t' does not name a type
In file included from D:\Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino/Arduino.h:193,
from eclairage_salon_bureau.cpp:4:
D:\Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino/HardwareSerial.h:58: error: 'size_t' does not name a type
D:\Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino/HardwareSerial.h:59: error: no members matching 'Print::write' in 'class Print'
J'ai pas le temps de regarder en détails mais en C++ à la fin d'une classe on met un ';' (dans le .h) (mais je sais plus s'il le faut aussi dans le langage à Arduino)
à la fin d'une classe on met un ';' (dans le .h) (mais je sais plus s'il le faut aussi dans le langage à Arduino)
En effet, c'est nécessaire.
Souvent quand je me fais une nouvelle classe je copie/colle une librairie déjà écrite pour éviter ce genre d'oublie qui peuvent te faire perdre un temps fou.
#ifndef DEF_PERSONNAGE //|¯Hi Hi
#define DEF_PERSONNAGE //|_
j'ai presque honte pour celle là Au moins vous savez où j'apprends le C++
Sinon j'ai corrigé les autres erreurs de bases (notamment le ; ou les constantes écrites trop vite voir qui se transforme au fil du code )
J'ai appliqué le lampeWrite, très bonne idée en effet! Merci bien!
Le code se compile comme il faut maintenant! (Il reste juste à voir si ca fait bien ce que je veux sur Nono!)
Donc passer de l'écriture variable(0) au lieu de variable=0 pour qu'il accepte de compiler, sans quoi j'avais une erreur Expected "(" before "=" token
Sachant que j'utilise cette notation partout ailleurs (variable=0)
#if defined(ARDUINO) && ARDUINO >= 100
#include "Arduino.h" //compilateur supérieur et égal a 1.0
#else
#include "WProgram.h" //compilateur inférieur et égal a 1.0
#endif
Je suis pas sur, mais c'est surement pour implémenter tout le blabla de l'Arduino, et c'est la le même fichier avant la 1.0 que après.
En tout cas ça marche pas sans.
J'ai fais vite fait une recherche, j'ai eu la flemme de chercher plus loin Cependant je suis tomber sur CE SITE, je vais faire un tour pour voir ce qu'il raconte de sympa.
Merci beaucoup, c'est vrai que pas pensé à chercher -_-
Et la deuxième question, c'est : Est ce qu'il y a une raison au fait que j'ai du passé de l'écriture variable=0 à variable(0) pour définir les valeurs de mes variables dans le constructeur?
Ou juste que c'est comme ça et c'est tout
c'est comme ça et c'est tout, si tu donne une valeur aux variables à la construction, c'est avec les parenthèses comme tu as écrit, si tu veux utiliser un égal, il faut le mettre dans le corps du constructeur:
c'est comme ça et c'est tout, si tu donne une valeur aux variables à la construction, c'est avec les parenthèses comme tu as écrit, si tu veux utiliser un égal, il faut le mettre dans le corps du constructeur
Et pour le #ifdef ca sert à inclure un fichier utile à l'environnement Arduino. Ce fichier contient un paquet de variable ou définition de symbole et aussi des inclusions vers d'autres truc utiles.
On passe par le ifdef car le fichier n'est pas le même selon la version d'Arduino que tu utilises (100 étant la version 1.00)
Si tu connais ta version tu pourrais te contenter de faire un "#include <lefichier.h>" avec le bon des deux fichiers.
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Retrouvez moi sur mon blog et ma chaine Youtube !
Retrouvez moi sur mon blog et ma chaine Youtube !
Retrouvez moi sur mon blog et ma chaine Youtube !
Retrouvez moi sur mon blog et ma chaine Youtube !
Retrouvez moi sur mon blog et ma chaine Youtube !
Retrouvez moi sur mon blog et ma chaine Youtube !