PaulStoffregen / Encoder

Quadrature Encoder Library for Arduino
http://www.pjrc.com/teensy/td_libs_Encoder.html
540 stars 239 forks source link

Arduino r4 support - added #96

Open mjs513 opened 11 months ago

mjs513 commented 11 months ago

@PaulStoffregen - @KurtE

When trying to update the library for the new R4 boards (Minima and WiFi) ran into an issue where attaching the interrupt did not work. Thanks to @KurtE found that the issue was with doing it from the constructor which took a while to track down. But he came up with a simple solution that maintains backward compatibility. More can found here: https://forum.arduino.cc/t/encoder-library-attachinterrupt-not-working-from-within-library/1149007

Basically creates a begin method that can be used but when you begin:

Encoder myEnc ;

void setup() { myEnc.begin(2,3); }

This can be used for any board. This method still works though:

Encoder myEnc(2, 3) ;

without using begin in the setup.

I did try it with a Teensy 4.1, Uno, Mega, Nano 33 IoT, and adafruits metro Express m0 board.

mjs513 commented 11 months ago

Just a quick update - verified changes work on a ESP32-C3 and a ESP32-S2

pandel commented 3 months ago

@mjs513 I tried your fork today with a R4 WIFI, but sadly, it does not work. I even used a basic example to make sure, it is not an error I introduced in my code. Both variants, with interrupts or not don't give any results.

The encoder itself works fine with the original library and a UNO R3.

Do you have an idea how I could start debugging whats happening?