crankyoldgit / IRremoteESP8266

Infrared remote library for ESP8266/ESP32: send and receive infrared signals with multiple protocols. Based on: https://github.com/shirriff/Arduino-IRremote/
GNU Lesser General Public License v2.1
3k stars 833 forks source link

Irremoteesp8266 and rfrh22 from radiohead #2013

Open Vorms opened 1 year ago

Vorms commented 1 year ago

I use an esp32. When I receive an infrared message I have to transmit an rf message, the corresponding node send a message to the node just receiving the infrared message and this not has to send an other message and so on.

I have a lot of crash (timer interrupt) I dont understand what'happend and how to solve it.

crankyoldgit commented 1 year ago

Can I suggest disabling collection of IR messages when you transmit via RF? Maybe the RF library you are using uses the same hardware timer. See documentation: https://crankyoldgit.github.io/IRremoteESP8266/doxygen/html/classIRrecv.html#a8fe4d26ef1f863db1db9994fed5fc209

e.g.

IRrecv irrecv(RecvPin,  // GPIO Pin to use
              CaptureBufferSize, //  Size of the capture buffer
              Timeout,  // How long to wait before we give up on a signal
              false,  // Wait for a .resume() call before we start capturing again
              TimerNumber);  // Which hardware timer should we use?

void setup() {
  irrecv.enableIRIn();  // Start up the IR receiver.
}

void loop() {
  // Check if an IR message has been received.
  if (irrecv.decode(&results)) {  // We have captured something.
    // The capture has stopped at this point.
    // Do your RF thing.
    // then
    // Resume capturing IR messages. It was not restarted until after we did the RF
    // message.
    irrecv.resume();
  }
  yield();
}

Or see the DumbIRRepeater.ino example code.

Vorms commented 1 year ago

Hello, Many thanks for your reply. It's exactly what I do . I resume after sending the rf message. I try to add delay before and and after rf send but it doesn't solve the issue. Regards Thierry

Le lun. 24 juill. 2023, 22 h 07, David Conran @.***> a écrit :

Can I suggest disabling collection of IR messages when you transmit via RF? Maybe the RF library you are using uses the same hardware timer. See documentation https://crankyoldgit.github.io/IRremoteESP8266/doxygen/html/classIRrecv.html#a8fe4d26ef1f863db1db9994fed5fc209:

https://crankyoldgit.github.io/IRremoteESP8266/doxygen/html/classIRrecv.html#a8fe4d26ef1f863db1db9994fed5fc209

e.g.

IRrecv irrecv(RecvPin, // GPIO Pin to use CaptureBufferSize, // Size of the capture buffer Timeout, // How long to wait before we give up on a signal false, // Wait for a .resume() call before we start capturing again TimerNumber); // Which hardware timer should we use? void setup() { irrecv.enableIRIn(); // Start up the IR receiver. } void loop() { // Check if an IR message has been received. if (irrecv.decode(&results)) { // We have captured something. // The capture has stopped at this point. // Do your RF thing. // then // Resume capturing IR messages. It was not restarted until after we did the RF // message. irrecv.resume(); } yield(); }

Or see the DumbIRRepeater.ino https://github.com/crankyoldgit/IRremoteESP8266/blob/master/examples/DumbIRRepeater/DumbIRRepeater.ino example code.

— Reply to this email directly, view it on GitHub https://github.com/crankyoldgit/IRremoteESP8266/issues/2013#issuecomment-1648864897, or unsubscribe https://github.com/notifications/unsubscribe-auth/AA6QD4IKOBEAWWUJERQTWLLXR4S7DANCNFSM6AAAAAA2WLL6EI . You are receiving this because you authored the thread.Message ID: @.***>

crankyoldgit commented 1 year ago

Do you have a minimum viaable example of your code that you can share that produces the issue/errors/etc?