Pages: [1]   Go Down
Author Topic: Comment créer sa propre librairire en fonction d'une autre  (Read 279 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Sr. Member
****
Karma: 0
Posts: 484
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour à tous,
Je me replonge dans Arduino smiley-razz smiley
J'ai utilisé une grande librarire qui consiste en plusieurs fichiers. Il est bien mais beaucoup de code est inutile et prend de la mémoire. En plus c'est un peu le cheni.

J'aimerais refaire "la mienne" en reprennant uniquement ce que j'ai besoin, et j'aimerais avoir tout dans un fichier .cpp et .h.

Auriez-vous un tutorial qui explique comme on crée une librarie?
Auriez-vous des info à me donner?

Merci beaucoup
Logged

Il ne suffit pas de tout savoir, la persévérance, c'est déjà presque tout!

Offline Offline
Sr. Member
****
Karma: 0
Posts: 484
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

http://arduino.cc/en/Hacking/LibraryTutorial
Logged

Il ne suffit pas de tout savoir, la persévérance, c'est déjà presque tout!

Offline Offline
Full Member
***
Karma: 2
Posts: 164
Alarme domestique sans fil : http://forum.arduino.cc/index.php?topic=239679.0
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Il suffit de commenter les fonctions qui ne te conviennent pas smiley
Logged

Offline Offline
Sr. Member
****
Karma: 0
Posts: 484
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Voilà, j'ai lu le tuto, mais je penne à faire marcher un truc qui semble bien etre simple

J'ai créé deux fichiers sous
/libraries/Sim908/Sim908.h
Code:
/*
  Sim908.h - Library
*/

#ifndef Sim908_h
#define Sim908_h

#include "Arduino.h"

class Sim908{
public:
Sim908();
void blinkLed(int lPin, int nBlink, int msec);

private:
};

#endif

/libraries/Sim908/Sim908.cpp
Code:
#include "Arduino.h"
#include "Sim908.h"

Sim908::Sim908(){

}

void Sim908::blinkLed(int lPin, int nBlink, int msec) {
   if (nBlink) {
     for (int i = 0; i < nBlink; i++) {
       digitalWrite(lPin, HIGH);
       delay(msec);
       digitalWrite(lPin, LOW);
       delay(msec);
     }
   }
 }

Et j'ai aussi fait un fichier Sim908.ino
Code:
#include <Sim908.h>

Sim908 sim908;

int green = 12;


void setup()
{
  pinMode(green, OUTPUT);
}


void loop()
{
  sim908.blinkLed(green,1,1000);
  delay(3000);
}

Quand je compile j'ai ce message d'erreur:
Quote
sim908_v6.cpp.o: In function `__static_initialization_and_destruction_0':
/Applications/sim908_v6.ino:3: undefined reference to `Sim908::Sim908()'
sim908_v6.cpp.o: In function `loop':
/Applications/sim908_v6.ino:16: undefined reference to `Sim908::blinkLed(int, int, int)'
Je ne comprends pas la premiere erreur, ou ai-je manqué une chose __static_initialization_and_destruction_0
et aussi la deuxième :
undefined reference to `Sim908::blinkLed(int, int, int)

Pourriez-vous me dire l'erreur(s) commises?
Logged

Il ne suffit pas de tout savoir, la persévérance, c'est déjà presque tout!

Offline Offline
Full Member
***
Karma: 2
Posts: 155
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

sur quel os tourne tu?
quel version de l'ide utilise tu?
dans Fichiers/preferences, coche "afficher les resultats détaillés pendant la compilation"


Logged

Offline Offline
Sr. Member
****
Karma: 0
Posts: 484
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hello,
Je suis sur OS 10.9
L'IDE est Arduino 1.0.5 . Es-ce qu'il y autre chose de mieux, pour Mac?
Je ne trouve pas Fichier/preference, mais ca c'est peut être parce que je suis sous Mac..

Merci
Logged

Il ne suffit pas de tout savoir, la persévérance, c'est déjà presque tout!

Haute-savoie
Offline Offline
Newbie
*
Karma: 0
Posts: 26
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salut!

Bizzard le message d'erreur mais tu as néanmoin fait une erreur. j'ai tester ton code et ca compile.

Dans ton .INO en tete tu as écris:
       #include <Sim908.h>

C'est faux!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! On utilise les <> pour dire au compilateur d'aller chercher la libraire dans les includes du compilateur lui même. si c'est toi qui a fait la librairie utilise les " " . De même tu range le .cpp et le .h dans le meme dossier que le .ino

Donc dans ton .ino tu met en tete:
         #include <Arduino.h>
         #include "Sim908.h" 

Avec les GUILLEMET!

Sinon chez moi ca compile...
Logged

Pages: [1]   Go Up
Jump to: