Bibliothèques

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

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.

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

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?

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

Gromain59:
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 :smiley: ) communauté Windows
[/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 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

Gromain59: 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

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?

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).

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.

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

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