bonjour,
j'ai trouvé un ino afin de piloter une raquette (non, pas de tennis) EQ5 d'astronomie
par contre j'ai une erreur à la compile, et malgré mes recherches, je ne comprends pas trop ce qu'il veut dire par :
//Create an instance of the mount
ce qui provoquerait l'erreur suivante
AstroEQ5.cpp.o: In function setup': AstroEQ5.cpp:212: undefined reference to __cxa_guard_acquire'
AstroEQ5.cpp:214: undefined reference to `__cxa_guard_release'
L'instanciation est un concept de programmation, très utile avec les librairie puisqu'il te permet de l'utiliser plusieurs fois. Par exemple, si tu utilise la librairie stepper pour les moteurs pas à pas, il y a une instanciation au début où tu définis ton moteur :
Stepper myStepper = Stepper(100, 5, 6);
Tu as instancié "myStepper", mais rien ne t'empêche ici de rajouter d'autres moteurs,
Stepper myStepper = Stepper(100, 5, 6);
Stepper myStepper2 = Stepper(100, 7, 8);
// et je leur fait faire un tour
myStepper.step(100);
myStepper2.step(100);
Quand les variables lastMillis et isLedOn sont déclarées static, leur valeur est conservée entre 2 appels à loop.
Si tu vire static ce n'est plus le cas.
La bonne solution est de virer static et de déplacer ces variables en tant que globales a l'extérieur de loop.
Une variable statique d'une fonction est équivalent d'un point de vue stockage/mémoire à une variable globale mais sa portée est limitée à la fonction dans laquelle elle est déclarée. C'est à dire que personne d'autre ne peut y accéder que le code de la fonction.
Une variable globe est accessibles par tout le monde.
Si tu décide de ne pas accéder à une variable globale que a partir d'une fonction donnée, ca revient au même.
Dernière différence: 2 fonctions toto() et tata() peuvent chacune avoir une variable static int titi; qui sont 2 varaibles différentes.
par contre si tu les sorts en variables globales cette distinction n'existe plus. Par sécurité appeller alors les variables toto_toto et tata_titi
Mais où va t'il chercher des noms aussi débiles... Pauvre Barbudor
Le topic du forum donné en référence par Skywood semble pourtant dire qu'il n'y a pas de problème avec les variables statiques scalaires, uniquement avec les objets composés (compound = classes ou structures). Il est suggéré que ce soit un bug du compil avr-gcc car ceci mis a part cette syntaxe est parfaitement légale.
A essayer.... mais là c'est trop tard pour lancer l'IDE. Bonne nuit (Skywodd, bosse tes partiels !)
barbudor:
Le topic du forum donné en référence par Skywood semble pourtant dire qu'il n'y a pas de problème avec les variables statiques scalaires, uniquement avec les objets composés (compound = classes ou structures). Il est suggéré que ce soit un bug du compil avr-gcc car ceci mis a part cette syntaxe est parfaitement légale.
Dans le pire des cas une petite màj de avr-gcc ne peut faire que du bien
alors, ce matin entre 2 coups de téléphone, j'ai mis les 2 lignes incriminées en début comme des variables normales.
plus d'erreur, mais est ce aussi suite à la maj de mon nunux hier soir en 12.04 au lieu de 10.10 (que j'aurai pas du faire d'ailleurs, unity une vraie daube)
edit, c'est quoi windaub? car le lien de sky va pour du windaub pas du nunux