Code photostudio et gestion des onglets

Bonjour

J’ai des petits problème avec ce code.

http://code.google.com/p/photoduino/downloads/detail?name=photoduino.shield.firmware.v.0.9.zip&can=2&q=

Je suis sur mac osx et au début j’avais beaucoup d’erreurs à la compilation. Et en faisant des recherche sur les forums j’ai trouvé un post concernant le même problème.
http://forum.snootlab.com/viewtopic.php?f=32&t=168&p=572&hilit=photoduino+scope+eeprom#p572

Après des recherches je me suis aperçu que je n’avais pas le problème sur un pc et surtout que sur le mac le premier onglet était ‘config_manager’ et sur pc ‘photoduino’.
Depuis j’ai installé la dernière version en anglais à la place de celle en français et je n’ai plus de problèmes.

Lors de la compilation les ‘sous programmes’ sont-ils traités dans l’ordre d’affichage dans l’IDE ?
Je n’ai pas trouver beaucoup d’informations concernant l’utilisation des ‘sous programmes’ si vous avez un petit lien je suis preneur.

Maintenant il me reste quelques erreurs et si vous avez une idée cela me serais bien utile

Photoduino.cpp: In function 'void controller_setSensorLimitVisual(unsigned int*, byte, byte)':
Photoduino.pde:-1: error: call of overloaded 'write(int)' is ambiguous
/Applications/Arduino.app/Contents/Resources/Java/libraries/LiquidCrystal/LiquidCrystal.h:82: note: candidates are: virtual size_t LiquidCrystal::write(uint8_t)
/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/cores/arduino/Print.h:49: note: size_t Print::write(const char*)
Photoduino.cpp: In function 'void controller_setSensorLimitNumeric(unsigned int*, byte, byte)':
Photoduino.pde:-1: error: call of overloaded 'write(int)' is ambiguous
/Applications/Arduino.app/Contents/Resources/Java/libraries/LiquidCrystal/LiquidCrystal.h:82: note: candidates are: virtual size_t LiquidCrystal::write(uint8_t)
/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/cores/arduino/Print.h:49: note: size_t Print::write(const char*)

Merci

Cas des onglets :
Réponse en fonction de mon expérience personnelle qui ne repose que sur du constaté en absence de disponibilité de documentation officielle.
OS = Linux debian mais cela ne doit pas avoir d'importance.

Le premier onglet porte le nom du programme (schetch)-> le fichier est enregistré sous machin.pde.
Les autres onglets si tu ne leur donnes pas d'extension sont enregistrés automatiquement avec l'extension pde sinon ils ont l'extension que tu leur donnes (voir conséquences en remarque 2).

Les onglets sont rangés dans l'ordre alphabétique.
Le compilateur concatène les fichiers pde. Soit machin.pde + onglet1.pde + onglet2.pde etc ....

J'ai fait la manip suivante :
fichier principal : machin.pde = que des commentaires
onglet 1 : setup()
onglet 2 : loop()
onglet 3 : première_fonction()
onglet 4 : seconde_fonction()

Cela plante puisque "première_fonction" est avant "loop" qui est est avant "setup"
Solution -> forcer l'ordre alphabétique :
fichier principal : machin.pde = que des commentaires
onglet 1 : A_setup()
onglet 2 : B_loop()
onglet 3 : C_première_fonction()
onglet 4 : D_seconde_fonction()

Maintenant la compilation se fait sans erreur.

Remarque 1 : tu peux très bien éditer les différents fichiers avec n'importe quel éditeur de texte.
Remarque 2 : si tu utilises une extension en *.c les fichiers seront compilés séparément, il te faudra aussi créer et inclure des *.h sinon les fonctions ne seront pas reconnues par le compilateur. Avec des pde cela ne se produit pas car l'IDE crée un unique fichier avec la fonction main() placée correctement avant la compilation

Remarque 3 : Évites de mélanger plusieurs sujets ensembles. Beaucoup de visiteurs font des recherches sur mots clés dans le titre. Avec ce titre, qui couvre une partie de tes problèmes, mais pas tout, ils ne pourront jamais arriver sur ce sujet. Merci pour eux.