Pages: [1]   Go Down
Author Topic: Arduino et POO  (Read 1219 times)
0 Members and 1 Guest are viewing this topic.
Belgium
Offline Offline
Newbie
*
Karma: 0
Posts: 5
No place like 127.0.0.1
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Je consultait des turoriaux sur l'arduino concernant la gestion de servo-moteur. Le librairie est servo.h. Dans l'utilisation il faut instanciè un objet de la classe Servo... Instancié un objet en C ????
Ma question est donc : l'arduino peut-être programmé en utilisant un une apporche POO et est donc programmé en C++ et non en C ?

Si c'est le cas, les classes sont aussi envoyé sur l'arduino (pour pouvoir créé les objets lors de l'execution) alors que la POO est très gourmande en ressource ?

Merci d'avance

Inform@tiquement
Manu404
Logged

" Je n'ai jamais rencontré d'homme si ignorant qu'il n'eut quelque chose à m'apprendre " - Galilée - 1635

Sophia-Antipolis (06)
Offline Offline
God Member
*****
Karma: 4
Posts: 618
Rejoignez le club !
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Oui c'est du C++. Mais ça eut pu être du C structuré pour faire comme de l'objet (http://chgi.developpez.com/c/objet/)

Regarde simplement ton répertoire Arduino et en particulier : arduino-00xx\hardware\libraries\Servo et tu verras des fichiers cpp, ce qui peut répondre à ta question (sauf si les développeurs sont des pervers qui utilisent une extension cpp pour du code C, on en a déjà vu...)

Non pour la seconde partie de ta question. Le code est compilé et ça ne veut rien dire "les classes sont envoyées (conjugaison !) sur l'Arduino". C'est pas une JVM non plus (même si ça existe, voir la KVM ou kilobyte virtual machine) mais le compilo va simplement retrouver les fonctions appelées et les considérer comme des appels de fonction standards.

Par contre ta question est légitime : attention à ta conception, car il y a une pile d'appels de fonction limitée (configurable mais oublie cette possibilité) qu'il faut prendre en compte, en évitant les appels de fonction imbriqués.

Par exemple, perdez l'habitude de faire des fonctions pour tout, genre "afficheValeur(50);" avec une fonction afficheValeur(int val) qui va simplement faire un Serial.print(val); --> écrivez Serial.print partout et puis marre.

« Last Edit: May 24, 2009, 02:35:28 pm by julien@pobot.org » Logged

Belgium
Offline Offline
Newbie
*
Karma: 0
Posts: 5
No place like 127.0.0.1
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Désolé, je me suis mal exprimé, je voulais dire que les classes pouvaient être "compilé" (en plus des objets) pour l'allocation dynamique de la mémoire (et donc la création dynamique d'objet) et j'imaginais déjà les possibilités de l'arduino décuplées par 1000. Concernant les sources, tu vas rire mais... Je n'ai pas encore mon arduino (il arrivera courant de la semaine) et le compilateur n'est pas encore installé. Je ne fait que lire de cours/tutoriel dessus ainsi que l'électronique en générale, pour le moment je me documente sur les CI logiques (rien de bien compliqué en somme quand on fait déja de la programmation).
Donc je n'ai pu vérifier dans le .h si c'était une class ou un struct...


Quote
Par exemple, perdez l'habitude de faire des fonctions pour tout, genre "afficheValeur(50);" avec une fonction afficheValeur(int val) qui va simplement faire un Serial.print(val); --> écrivez Serial.print partout et puis marre.

Après plusieurs années de POO pur et dure ou ce genre de fonctions font foison sa vas être dur... (c'est presque devenu une habitude) Mais je prend note.

Merci pour ta réponse

Inform@tiquement
Manu404

Logged

" Je n'ai jamais rencontré d'homme si ignorant qu'il n'eut quelque chose à m'apprendre " - Galilée - 1635

Pages: [1]   Go Up
Jump to: