Go Down

Topic: Bibliothèques (Read 1 time) previous topic - next topic

LaurentD

Bonjour,

je voudrais pouvoir gérer le temps dans mes programmes arduino, sous codeBlocks par exemple je le fais au moyen de la SDL, ma question est: Peut-on inclure des bibliothèques quand on travaille avec "l'IDE" d'arduino? SI oui, comment? Si non, alors je voudrais en savoir plus sur la conception d'une interface:

Comment coder un morceaux sous un IDE classique et faire la transition avec la carte?

Merci

Gromain59

les bibliothèques sont à placer dans le dossier libraries: \arduino-0022\libraries si tu souhaites les partager entre tout tes sketchs, ou bien directement dans le dossier de ton sketch. Ensuite, #include machin en-tête du sketch.

Quote
Comment coder un morceaux sous un IDE classique et faire la transition avec la carte?

Tu peux tout à fait utiliser un éditeur externe (n++ par ex) pour éditer les différents fichiers (pde, bibliothèques). Mais tu compiles et charge toujours le sketch depuis l'IDE arduino. Penses alors à cocher la case "utiliser un éditeur externe" dans les préférences de l'IDE arduino.
Pour utiliser Code Bloks, il y a moyen (voir sur le site arduino, c'est expliqué).

Gromain
"pour résoudre un gros problème, il est souvent plus facile de le diviser en petits problèmes élémentaires..."

projet domotique xPLDuino
IRC: freenode #xplduino

LaurentD

Merci de la réponse.

Mais quand je regarde les bibliothèques déjà présentes je vois des fichiers .cpp et pas des .dll,  pourquoi? Normalement sous code blocks ce que je code est en .cpp et si je veux "linker" une bibliothèque je dois lui adjoindre des fichiers .dll non?

Gromain59

attention, l'Atmega de l'arduino est microcontroleur, pas un ordinateur. Pas d'OS, donc pas de dll.

On utilise avr-gcc, un compilateur de code source C qui compile systématiquement le sketch et les bibliothèques qui y sont utilisées, pour en faire un fichier .hex qui est ensuite chargé.

Gromain
"pour résoudre un gros problème, il est souvent plus facile de le diviser en petits problèmes élémentaires..."

projet domotique xPLDuino
IRC: freenode #xplduino

vincelge


attention, l'Atmega de l'arduino est microcontroleur, pas un ordinateur. Pas d'OS, donc pas de dll.

[HS]
Je dirais plutôt: Pas de Windows, donc pas de dll. Les dll ne sont pas associées au monde des ordi, mais à la (petite  :D ) communauté Windows
[/HS]
Tous les jours, je roule en Electrique
Arretons de polluer !

Moi & mon Ardu

Gromain59

Quote
Je dirais plutôt: Pas de Windows, donc pas de dll. Les dll ne sont pas associées au monde des ordi, mais à la (petite  smiley-grin ) communauté Windows

oui, effectivement, c'est plus juste de dire ça. ;)
Mais l'idée essentielle, c'est que le programme du µC est le seul à utiliser les ressources, y compris les bibliothèques.

Gromain
"pour résoudre un gros problème, il est souvent plus facile de le diviser en petits problèmes élémentaires..."

projet domotique xPLDuino
IRC: freenode #xplduino

Jean-François


On utilise avr-gcc, un compilateur de code source C qui compile systématiquement le sketch et les bibliothèques qui y sont utilisées, pour en faire un fichier .hex qui est ensuite chargé.


On appelle ça un entonnoir .....  XD
MacBook intel core 2 duo  os X snow Leopard 10.6
 eMac PPc G4  os X Leopard 10.5
powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

LaurentD

Merci pour toutes ces précisions, je commence à comprendre que je m'éloigne du peu que je connaisse en programmation... Quoi qu'il en soit, pour recentrer un peu la conversation: je peux quand même utiliser des bibliothèques telles que SDL ou dois-je me servir que des bibliothèques spécialements conçues pour arduino?  Si oui où trouver des bibliothèques en .cpp et non plus .dll ou comment les convertir d'un format à l'autre?

Brewal

Il faudrait savoir précisément ce que tu veux faire ! Si c'est juste gérer le temps, tu peux t'en sortir à coups de delay(), millis(), etc... tout ça est inclue dans la bibliothèque de base "WProgram.h" (qui est inclue automatiquement à la compilation par l'ide arduino).

LaurentD

Je souhaite discrétiser un signal sinusoidal pour ensuite élaborer une table de couple (commande position, temps d'envoi de la commande) que je transfère ensuite sur la carte. Il faut donc ensuite que l'arduino lance une commande, fasse autre chose, puis à une durée précise aprés l'envoi de la précédente commande en envoit une seconde. Je ne peux donc pas utiliser de delay car cela mettrait en pause mon programme. Ce qu'il me faudrait c'est une fonction qui me donne une heure absolue depuis le début du programme et je m'en sors ensuite avec des différences de retour de cette fonction pour avoir un intervalle de temps précis.

Gromain59

millis() te renvoie le temps écoulé depuis le démarrage de l'arduino, tu peux donc faire des calculs de temps.

Mais si tu as besoin de précision, tu peux utiliser les interruptions temporelles en utilisant par exemple la bibliothèque Timer1

Gromain
"pour résoudre un gros problème, il est souvent plus facile de le diviser en petits problèmes élémentaires..."

projet domotique xPLDuino
IRC: freenode #xplduino

LaurentD

Merci! Et désolé de vous avoir dérangé pour si peu... je cherchais à écraser la mouche avec la bombe atomique (comme dirait un de mes kholleurs de physique). Et dire que j'avas entendu parler de millis ya un an...

Malgrés l'imprécision de cette fonction je devrais pouvoir m'en sortir vu que la durée de l'experience est faible.


Merci encore

Go Up