Page 1 sur 1

IR + fonction Tone()

Message non luPosté: Mar 6 Nov 2012 09:57
de Gorlok
bonjour à tous,
dans le but de me faire un réveil que j'utilise avec un télécommande IR j'ai voulu utiliser la fonction tone() mais voila se que j'ai lors de la compilation :

core.a(Tone.cpp.o): In function `__vector_7':
F:\Arduino\arduino-1.0.1\hardware\arduino\cores\arduino/Tone.cpp:523: multiple definition of `__vector_7'
IRremote\IRremote.cpp.o:F:\Arduino\arduino-1.0.1\libraries\IRremote/IRremote.cpp:311: first defined here

es-ce que quelqu'un pourrait m'expliquer pourquoi ?

merci d'avance :)

Re: IR + fonction Tone()

Message non luPosté: Mar 6 Nov 2012 11:35
de Philippe_ph
Bonjour,

Je ne sais pas si je te serai d'une grande aide car je viens juste de récupérer l'IDE arduino. J'ai trouvé le fichier Tone.cpp mais pas IRremote.cpp, je suppose donc que c'est une bibliothèque que tu as installée ou un fichier que tu as écrit. Le message d'erreur dit qu'il trouve plusieurs définitions pour __vector_7. C'est peut-être du à un problème d'include. D'où vient le fichier IRremote.cpp ?

Philippe.

Re: IR + fonction Tone()

Message non luPosté: Mar 6 Nov 2012 11:47
de Gorlok
bonjour,
IRremote.cpp est un librairie que j'ai telecharger sur internet (celle qu'ils donnent sur le site officiel).

Re: IR + fonction Tone()

Message non luPosté: Mar 6 Nov 2012 13:56
de SesechXP
Salut,

C'est parce que les bibliothèques Tone et IRremote utilisent toutes les deux le timer 2.

Pour régler le problème, il faut modifier la bibliothèque IRremote pour qu'elle utilise le timer 1. Tu ne précises pas la carte Arduino que tu utilises, mais dans le cas d'une Uno :
- Ouvrir le fichier IRremoteInt.h de la bibliothèque IRremote ;
- Allez aux lignes 64 à 68 et changer :
Code: Tout sélectionner
// Arduino Duemilanove, Diecimila, LilyPad, Mini, Fio, etc
#else
  //#define IR_USE_TIMER1   // tx = pin 9
  #define IR_USE_TIMER2     // tx = pin 3
#endif

par
Code: Tout sélectionner
// Arduino Duemilanove, Diecimila, LilyPad, Mini, Fio, etc
#else
  #define IR_USE_TIMER1   // tx = pin 9
  //#define IR_USE_TIMER2     // tx = pin 3
#endif


Attention ! Il faut changer la broche TX et passer de la 3 à la 9 :!:

++

Re: IR + fonction Tone()

Message non luPosté: Mar 6 Nov 2012 16:42
de Gorlok
C'est bon :D merci beaucoup pour ton aide !

Re: IR + fonction Tone()

Message non luPosté: Mar 6 Nov 2012 17:40
de Stéphane
Arf, je me suis fait prendre de court par SesechXP !
Sa méthode est bonne pour résoudre ce conflit, du coup, bravo pour la solution :)

Re: IR + fonction Tone()

Message non luPosté: Mar 6 Nov 2012 17:45
de SesechXP
Au plaisir ;)

Re: IR + fonction Tone()

Message non luPosté: Mar 6 Nov 2012 18:24
de Stéphane
Humpf, je prendrai ma revanche !

"Soon..." :)