Hello everyone,
First time poster on any forum so please bear with me if I omit anything important.
I have an Elegoo Uno R3. I have installed this Library through Sketch->Include Library->Add Zip: PaulStoffregen / Encoder. I am on the Arduino IDE 2.0 on Arch. This is the code I am trying to run:
/* Encoder Library - Basic Example
* http://www.pjrc.com/teensy/td_libs_Encoder.html
*
* This example code is in the public domain.
*/
#include <Encoder.h>
// Change these two numbers to the pins connected to your encoder.
// Best Performance: both pins have interrupt capability
// Good Performance: only the first pin has interrupt capability
// Low Performance: neither pin has interrupt capability
Encoder myEnc(2, 3);
// avoid using pins with LEDs attached
void setup() {
Serial.begin(9600);
Serial.println("Basic Encoder Test:");
}
long oldPosition = -999;
void loop() {
long newPosition = myEnc.read();
if (newPosition != oldPosition) {
oldPosition = newPosition;
Serial.println(newPosition);
}
}
These are the errors I am getting when I try to compile:
In file included from /home/kurt/Arduino/Basic/Basic.ino:7:0:
/home/kurt/Arduino/libraries/Encoder/Encoder.h:66:11: error: 'IO_REG_TYPE' does not name a type
volatile IO_REG_TYPE * pin1_register;
^~~~~~~~~~~
/home/kurt/Arduino/libraries/Encoder/Encoder.h:67:11: error: 'IO_REG_TYPE' does not name a type
volatile IO_REG_TYPE * pin2_register;
^~~~~~~~~~~
/home/kurt/Arduino/libraries/Encoder/Encoder.h:68:2: error: 'IO_REG_TYPE' does not name a type
IO_REG_TYPE pin1_bitmask;
^~~~~~~~~~~
/home/kurt/Arduino/libraries/Encoder/Encoder.h:69:2: error: 'IO_REG_TYPE' does not name a type
IO_REG_TYPE pin2_bitmask;
^~~~~~~~~~~
/home/kurt/Arduino/libraries/Encoder/Encoder.h: In member function 'void Encoder::begin(uint8_t, uint8_t)':
/home/kurt/Arduino/libraries/Encoder/Encoder.h:92:11: error: 'struct Encoder_internal_state_t' has no member named 'pin1_register'
encoder.pin1_register = PIN_TO_BASEREG(pin1);
^~~~~~~~~~~~~
/home/kurt/Arduino/libraries/Encoder/Encoder.h:93:11: error: 'struct Encoder_internal_state_t' has no member named 'pin1_bitmask'
encoder.pin1_bitmask = PIN_TO_BITMASK(pin1);
^~~~~~~~~~~~
/home/kurt/Arduino/libraries/Encoder/Encoder.h:94:11: error: 'struct Encoder_internal_state_t' has no member named 'pin2_register'
encoder.pin2_register = PIN_TO_BASEREG(pin2);
^~~~~~~~~~~~~
/home/kurt/Arduino/libraries/Encoder/Encoder.h:95:11: error: 'struct Encoder_internal_state_t' has no member named 'pin2_bitmask'
encoder.pin2_bitmask = PIN_TO_BITMASK(pin2);
^~~~~~~~~~~~
In file included from /home/kurt/Arduino/libraries/Encoder/Encoder.h:41:0,
from /home/kurt/Arduino/Basic/Basic.ino:7:
/home/kurt/Arduino/libraries/Encoder/Encoder.h:102:31: error: 'struct Encoder_internal_state_t' has no member named 'pin1_register'
if (DIRECT_PIN_READ(encoder.pin1_register, encoder.pin1_bitmask)) s |= 1;
^
/home/kurt/Arduino/libraries/Encoder/utility/direct_pin_read.h:8:46: note: in definition of macro 'DIRECT_PIN_READ'
#define DIRECT_PIN_READ(base, mask) (((*(base)) & (mask)) ? 1 : 0)
^~~~
/home/kurt/Arduino/libraries/Encoder/Encoder.h:102:54: error: 'struct Encoder_internal_state_t' has no member named 'pin1_bitmask'
if (DIRECT_PIN_READ(encoder.pin1_register, encoder.pin1_bitmask)) s |= 1;
^
/home/kurt/Arduino/libraries/Encoder/utility/direct_pin_read.h:8:56: note: in definition of macro 'DIRECT_PIN_READ'
#define DIRECT_PIN_READ(base, mask) (((*(base)) & (mask)) ? 1 : 0)
^~~~
/home/kurt/Arduino/libraries/Encoder/Encoder.h:103:31: error: 'struct Encoder_internal_state_t' has no member named 'pin2_register'
if (DIRECT_PIN_READ(encoder.pin2_register, encoder.pin2_bitmask)) s |= 2;
^
/home/kurt/Arduino/libraries/Encoder/utility/direct_pin_read.h:8:46: note: in definition of macro 'DIRECT_PIN_READ'
#define DIRECT_PIN_READ(base, mask) (((*(base)) & (mask)) ? 1 : 0)
^~~~
/home/kurt/Arduino/libraries/Encoder/Encoder.h:103:54: error: 'struct Encoder_internal_state_t' has no member named 'pin2_bitmask'
if (DIRECT_PIN_READ(encoder.pin2_register, encoder.pin2_bitmask)) s |= 2;
^
/home/kurt/Arduino/libraries/Encoder/utility/direct_pin_read.h:8:56: note: in definition of macro 'DIRECT_PIN_READ'
#define DIRECT_PIN_READ(base, mask) (((*(base)) & (mask)) ? 1 : 0)
^~~~
exit status 1
Compilation error: exit status 1
The project I am currently working on is trying to figure out how a TT motor with an encoder works, trying to find out how to tell if a motor is going CW or CCW and also how to tell once a full rotation of the shaft has occurred.