Go Down

Topic: conflit gogprs iremote ide 1.0 (Read 575 times) previous topic - next topic

infobarquee

bonjour le monde,
depuis tout à l'heure je tente de connecter un IR sur le nono.
je pars de gogprs avec un code à 2 balles, ca fonctionne, le numéro de réception du sms s'affiche.
dès que j'inclus la lib IRremote.h le numéro disparait.
ide 1.0
je penche pour une histoire de timer ou pin
dans  irremoteint.h je trouve ceci
Quote
// Arduino Mega
#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
  //#define IR_USE_TIMER1   // tx = pin 11
  #define IR_USE_TIMER2     // tx = pin 9
  //#define IR_USE_TIMER3   // tx = pin 5
  //#define IR_USE_TIMER4   // tx = pin 6
  //#define IR_USE_TIMER5   // tx = pin 46

// Teensy 1.0
#elif defined(__AVR_AT90USB162__)
  #define IR_USE_TIMER1     // tx = pin 17

// Teensy 2.0
#elif defined(__AVR_ATmega32U4__)
  //#define IR_USE_TIMER1   // tx = pin 14
  //#define IR_USE_TIMER3   // tx = pin 9
  #define IR_USE_TIMER4_HS  // tx = pin 10

// Teensy++ 1.0 & 2.0
#elif defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB1286__)
  //#define IR_USE_TIMER1   // tx = pin 25
  #define IR_USE_TIMER2     // tx = pin 1
  //#define IR_USE_TIMER3   // tx = pin 16

// Sanguino
#elif defined(__AVR_ATmega644P__) || defined(__AVR_ATmega644__)
  //#define IR_USE_TIMER1   // tx = pin 13
  #define IR_USE_TIMER2     // tx = pin 14

// Atmega8
#elif defined(__AVR_ATmega8P__) || defined(__AVR_ATmega8__)
  #define IR_USE_TIMER1   // tx = pin 9

// Arduino Duemilanove, Diecimila, LilyPad, Mini, Fio, etc
#else
  //#define IR_USE_TIMER1   // tx = pin 9
  #define IR_USE_TIMER2     // tx = pin 3
#endif


merci d'avance si quelqu'un a une lumière de génie

skywodd

Salut,

GoGPRS -> NewSoftSerial -> Timer pour la gestion du signal série software

Essaye de basculer ce commentaire à la fin du .h :
Code: [Select]
//#define IR_USE_TIMER1   // tx = pin 9
#define IR_USE_TIMER2     // tx = pin 3

histoire d'utiliser le timer 1 au lieu du timer 2.
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

infobarquee

j'y ais pensé aussi, mais, évidemment y a un mais, la pin 9 est utilisée pour allumer ou éteindre la carte gsm.
je vais tester avec une mega2560 en passant sur le timer3 ou 4 ou 5

infobarquee

bon sur une mega2560, ca fonctionne pas du tout, même avec l'exemple gogprs
une histoire de pin à tous les coups

infobarquee

rien a faire, dès que la lib irremote est chargée, ca flingue gogprs.
je vois pas de solution.
et gogprs n'est pas compatible avec l'ide 0.22-23 ou j'ai raté un truc.

skywodd


rien a faire, dès que la lib irremote est chargée, ca flingue gogprs.
je vois pas de solution.
et gogprs n'est pas compatible avec l'ide 0.22-23 ou j'ai raté un truc.

C'est une histoire de timer et de pin, faudrait regarder le code des deux librairies (et de NewSoftSerial) pour savoir qui utilise quoi.
Et aussi le datasheet du ATmega2560 pour savoir ou se trouve les sorties OSCnA des différents timers.
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

infobarquee

#6
Feb 01, 2013, 08:07 pm Last Edit: Feb 01, 2013, 11:44 pm by infobarquee Reason: 1
gogprs utilise SoftwareSerial.h
NewSoftSerial et gogprs ne font pas lit commun  :smiley-roll-blue:

en survolant rapidement les 2 lib, timer0
j'essaye de voir pour l'atmega2560

EDIT :
en comparant SoftwareSerial et NewSoftSerial, mis à part quelques détails de rajout de lettres au lieu de _, la seule grosse différence est ceci dans NewSoftSerial.h que l'on ne trouve pas dans l'autre lib
Quote
static void enable_timer0(bool enable);


dans la lib irremote, c'est TIMER2 qui est utilisé.

donc si je comprends bien (me reprendre en cas ou), ca ne peut coller entre les 2 libs.

je vais donc tenter de faire la chose suivante, retirer la carte gsm du nono et cabler a part en mettant TIMER1 dans NewSoftSerial et en mettant un strap vers une autre pin afin de l'allumer ou eteindre.

infobarquee

bonjour,
ma manip ne fonctionne pas  ]:)
je vois pas trop la solution

Go Up