Pages: [1]   Go Down
Author Topic: Bibliothèques  (Read 1268 times)
0 Members and 1 Guest are viewing this topic.
Noum
Offline Offline
Newbie
*
Karma: 0
Posts: 20
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Pays de la betise
Offline Offline
Sr. Member
****
Karma: 4
Posts: 419
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

"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

Noum
Offline Offline
Newbie
*
Karma: 0
Posts: 20
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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?
Logged

Pays de la betise
Offline Offline
Sr. Member
****
Karma: 4
Posts: 419
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

"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

Cergy
Offline Offline
Full Member
***
Karma: 0
Posts: 137
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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-grin ) communauté Windows
[/HS]
Logged

Tous les jours, je roule en Electrique
Arretons de polluer !

Moi & mon Ardu

Pays de la betise
Offline Offline
Sr. Member
****
Karma: 4
Posts: 419
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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. smiley-wink
Mais l'idée essentielle, c'est que le programme du µC est le seul à utiliser les ressources, y compris les bibliothèques.

Gromain
Logged

"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

Forum Moderator
Geneva
Offline Offline
Faraday Member
*****
Karma: 30
Posts: 3231
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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 .....  smiley-lol
Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Noum
Offline Offline
Newbie
*
Karma: 0
Posts: 20
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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?
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 13
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Noum
Offline Offline
Newbie
*
Karma: 0
Posts: 20
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Pays de la betise
Offline Offline
Sr. Member
****
Karma: 4
Posts: 419
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

"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

Noum
Offline Offline
Newbie
*
Karma: 0
Posts: 20
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Pages: [1]   Go Up
Jump to: