I use Encoder KY-040 with library PaulStoffregen. I get numerous error messages. Can someone help me please.
https://funduino.de/nr-32-der-rotary-encoder-ky-040
Processing nanorp2040connect (platform: raspberrypi; board: nanorp2040connect; framework: arduino)
--------------------------------------------------------------------------------------------------------------------------------------------------Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/raspberrypi/nanorp2040connect.html
PLATFORM: Raspberry Pi RP2040 (1.9.0) > Arduino Nano RP2040 Connect
HARDWARE: RP2040 133MHz, 264KB RAM, 2MB Flash
DEBUG: Current (cmsis-dap) External (cmsis-dap, jlink, raspberrypi-swd)
PACKAGES:
- framework-arduino-mbed @ 4.0.2
- tool-openocd-raspberrypi @ 2.1100.0 (11.0)
- tool-rp2040tools @ 1.0.2
- toolchain-gccarmnoneeabi @ 1.90201.191206 (9.2.1)
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 43 compatible libraries
Scanning dependencies...
Dependency Graph
|-- Encoder @ 1.4.2
Building in release mode
Compiling .pio\build\nanorp2040connect\src\main.cpp.o
Compiling .pio\build\nanorp2040connect\libff7\Encoder\Encoder.cpp.o
Archiving .pio\build\nanorp2040connect\libFrameworkArduinoVariant.a
Compiling .pio\build\nanorp2040connect\FrameworkArduino\Serial.cpp.o
Compiling .pio\build\nanorp2040connect\FrameworkArduino\Tone.cpp.o
In file included from .pio\libdeps\nanorp2040connect\Encoder\Encoder.h:46,
from .pio\libdeps\nanorp2040connect\Encoder\Encoder.cpp:2:
.pio\libdeps\nanorp2040connect\Encoder\utility/interrupt_pins.h:334:2: error: #error "Interrupts are unknown for this board, please add to this code"
334 | #error "Interrupts are unknown for this board, please add to this code"
| ^~~~~
.pio\libdeps\nanorp2040connect\Encoder\utility/interrupt_pins.h:337:2: error: #error "Encoder requires interrupt pins, but this board does not have any :("
337 | #error "Encoder requires interrupt pins, but this board does not have any :("
| ^~~~~
.pio\libdeps\nanorp2040connect\Encoder\utility/interrupt_pins.h:338:2: error: #error "You could try defining ENCODER_DO_NOT_USE_INTERRUPTS as a kludge."
338 | #error "You could try defining ENCODER_DO_NOT_USE_INTERRUPTS as a kludge."
| ^~~~~
In file included from .pio\libdeps\nanorp2040connect\Encoder/Encoder.h:46,
from src\main.cpp:3:
.pio\libdeps\nanorp2040connect\Encoder/utility/interrupt_pins.h:334:2: error: #error "Interrupts are unknown for this board, please add to this code"
334 | #error "Interrupts are unknown for this board, please add to this code"
| ^~~~~
.pio\libdeps\nanorp2040connect\Encoder/utility/interrupt_pins.h:337:2: error: #error "Encoder requires interrupt pins, but this board does not have any :("
337 | #error "Encoder requires interrupt pins, but this board does not have any :("
| ^~~~~
.pio\libdeps\nanorp2040connect\Encoder/utility/interrupt_pins.h:338:2: error: #error "You could try defining ENCODER_DO_NOT_USE_INTERRUPTS as a kludge."
338 | #error "You could try defining ENCODER_DO_NOT_USE_INTERRUPTS as a kludge."
| ^~~~~
In file included from .pio\libdeps\nanorp2040connect\Encoder\Encoder.cpp:2:
.pio\libdeps\nanorp2040connect\Encoder\Encoder.h:61:11: error: 'IO_REG_TYPE' does not name a type
61 | volatile IO_REG_TYPE * pin1_register;
| ^~~~~~~~~~~
.pio\libdeps\nanorp2040connect\Encoder\Encoder.h:62:11: error: 'IO_REG_TYPE' does not name a type
62 | volatile IO_REG_TYPE * pin2_register;
| ^~~~~~~~~~~
.pio\libdeps\nanorp2040connect\Encoder\Encoder.h:63:2: error: 'IO_REG_TYPE' does not name a type
63 | IO_REG_TYPE pin1_bitmask;
| ^~~~~~~~~~~
.pio\libdeps\nanorp2040connect\Encoder\Encoder.h:64:2: error: 'IO_REG_TYPE' does not name a type
64 | IO_REG_TYPE pin2_bitmask;
| ^~~~~~~~~~~
In file included from .pio\libdeps\nanorp2040connect\Encoder\Encoder.cpp:2:
.pio\libdeps\nanorp2040connect\Encoder\Encoder.h:45:30: error: 'CORE_NUM_INTERRUPT' was not declared in this scope; did you mean 'NOT_AN_INTERRUPT'?
45 | #define ENCODER_ARGLIST_SIZE CORE_NUM_INTERRUPT
| ^~~~~~~~~~~~~~~~~~
.pio\libdeps\nanorp2040connect\Encoder\Encoder.h:153:50: note: in expansion of macro 'ENCODER_ARGLIST_SIZE'
153 | static Encoder_internal_state_t * interruptArgs[ENCODER_ARGLIST_SIZE];
| ^~~~~~~~~~~~~~~~~~~~
In file included from .pio\libdeps\nanorp2040connect\Encoder\Encoder.cpp:2:
.pio\libdeps\nanorp2040connect\Encoder\Encoder.h: In constructor 'Encoder::Encoder(uint8_t, uint8_t)':
.pio\libdeps\nanorp2040connect\Encoder\Encoder.h:82:11: error: 'struct Encoder_internal_state_t' has no member named 'pin1_register'
82 | encoder.pin1_register = PIN_TO_BASEREG(pin1);
| ^~~~~~~~~~~~~
.pio\libdeps\nanorp2040connect\Encoder\Encoder.h:82:27: error: 'PIN_TO_BASEREG' was not declared in this scope
82 | encoder.pin1_register = PIN_TO_BASEREG(pin1);
| ^~~~~~~~~~~~~~
.pio\libdeps\nanorp2040connect\Encoder\Encoder.h:83:11: error: 'struct Encoder_internal_state_t' has no member named 'pin1_bitmask'
83 | encoder.pin1_bitmask = PIN_TO_BITMASK(pin1);
| ^~~~~~~~~~~~
.pio\libdeps\nanorp2040connect\Encoder\Encoder.h:83:26: error: 'PIN_TO_BITMASK' was not declared in this scope
83 | encoder.pin1_bitmask = PIN_TO_BITMASK(pin1);
| ^~~~~~~~~~~~~~
.pio\libdeps\nanorp2040connect\Encoder\Encoder.h:84:11: error: 'struct Encoder_internal_state_t' has no member named 'pin2_register'
84 | encoder.pin2_register = PIN_TO_BASEREG(pin2);
| ^~~~~~~~~~~~~
.pio\libdeps\nanorp2040connect\Encoder\Encoder.h:85:11: error: 'struct Encoder_internal_state_t' has no member named 'pin2_bitmask'
85 | encoder.pin2_bitmask = PIN_TO_BITMASK(pin2);
| ^~~~~~~~~~~~
.pio\libdeps\nanorp2040connect\Encoder\Encoder.h:92:31: error: 'struct Encoder_internal_state_t' has no member named 'pin1_register'
92 | if (DIRECT_PIN_READ(encoder.pin1_register, encoder.pin1_bitmask)) s |= 1;
| ^~~~~~~~~~~~~
.pio\libdeps\nanorp2040connect\Encoder\Encoder.h:92:54: error: 'struct Encoder_internal_state_t' has no member named 'pin1_bitmask'
92 | if (DIRECT_PIN_READ(encoder.pin1_register, encoder.pin1_bitmask)) s |= 1;
| ^~~~~~~~~~~~
.pio\libdeps\nanorp2040connect\Encoder\Encoder.h:92:7: error: 'DIRECT_PIN_READ' was not declared in this scope
92 | if (DIRECT_PIN_READ(encoder.pin1_register, encoder.pin1_bitmask)) s |= 1;
| ^~~~~~~~~~~~~~~
.pio\libdeps\nanorp2040connect\Encoder\Encoder.h:93:31: error: 'struct Encoder_internal_state_t' has no member named 'pin2_register'
93 | if (DIRECT_PIN_READ(encoder.pin2_register, encoder.pin2_bitmask)) s |= 2;
| ^~~~~~~~~~~~~
.pio\libdeps\nanorp2040connect\Encoder\Encoder.h:93:54: error: 'struct Encoder_internal_state_t' has no member named 'pin2_bitmask'
93 | if (DIRECT_PIN_READ(encoder.pin2_register, encoder.pin2_bitmask)) s |= 2;
| ^~~~~~~~~~~~
In file included from src\main.cpp:3:
.pio\libdeps\nanorp2040connect\Encoder/Encoder.h:61:11: error: 'IO_REG_TYPE' does not name a type
61 | volatile IO_REG_TYPE * pin1_register;
| ^~~~~~~~~~~
.pio\libdeps\nanorp2040connect\Encoder/Encoder.h:62:11: error: 'IO_REG_TYPE' does not name a type
62 | volatile IO_REG_TYPE * pin2_register;
| ^~~~~~~~~~~
.pio\libdeps\nanorp2040connect\Encoder/Encoder.h:63:2: error: 'IO_REG_TYPE' does not name a type
63 | IO_REG_TYPE pin1_bitmask;
| ^~~~~~~~~~~
.pio\libdeps\nanorp2040connect\Encoder/Encoder.h:64:2: error: 'IO_REG_TYPE' does not name a type
64 | IO_REG_TYPE pin2_bitmask;
| ^~~~~~~~~~~
.pio\libdeps\nanorp2040connect\Encoder\Encoder.h:93:7: error: 'DIRECT_PIN_READ' was not declared in this scope
93 | if (DIRECT_PIN_READ(encoder.pin2_register, encoder.pin2_bitmask)) s |= 2;
| ^~~~~~~~~~~~~~~
.pio\libdeps\nanorp2040connect\Encoder\Encoder.h: In static member function 'static void Encoder::update(Encoder_internal_state_t*)':
.pio\libdeps\nanorp2040connect\Encoder\Encoder.h:292:40: error: 'struct Encoder_internal_state_t' has no member named 'pin1_register'
292 | uint8_t p1val = DIRECT_PIN_READ(arg->pin1_register, arg->pin1_bitmask);
| ^~~~~~~~~~~~~
.pio\libdeps\nanorp2040connect\Encoder\Encoder.h:292:60: error: 'struct Encoder_internal_state_t' has no member named 'pin1_bitmask'
292 | uint8_t p1val = DIRECT_PIN_READ(arg->pin1_register, arg->pin1_bitmask);
| ^~~~~~~~~~~~
.pio\libdeps\nanorp2040connect\Encoder\Encoder.h:292:19: error: 'DIRECT_PIN_READ' was not declared in this scope
292 | uint8_t p1val = DIRECT_PIN_READ(arg->pin1_register, arg->pin1_bitmask);
| ^~~~~~~~~~~~~~~
.pio\libdeps\nanorp2040connect\Encoder\Encoder.h:293:40: error: 'struct Encoder_internal_state_t' has no member named 'pin2_register'
293 | uint8_t p2val = DIRECT_PIN_READ(arg->pin2_register, arg->pin2_bitmask);
| ^~~~~~~~~~~~~
.pio\libdeps\nanorp2040connect\Encoder\Encoder.h:293:60: error: 'struct Encoder_internal_state_t' has no member named 'pin2_bitmask'
293 | uint8_t p2val = DIRECT_PIN_READ(arg->pin2_register, arg->pin2_bitmask);
| ^~~~~~~~~~~~
.pio\libdeps\nanorp2040connect\Encoder\Encoder.cpp: At global scope:
.pio\libdeps\nanorp2040connect\Encoder\Encoder.cpp:8:28: error: 'Encoder_internal_state_t* Encoder::interruptArgs []' is not a static data member
of 'class Encoder'
8 | Encoder_internal_state_t * Encoder::interruptArgs[];
| ^~~~~~~
.pio\libdeps\nanorp2040connect\Encoder\Encoder.cpp:8:28: error: storage size of 'Encoder::interruptArgs' isn't known
In file included from src\main.cpp:3:
.pio\libdeps\nanorp2040connect\Encoder/Encoder.h:45:30: error: 'CORE_NUM_INTERRUPT' was not declared in this scope; did you mean 'NOT_AN_INTERRUPT'?
45 | #define ENCODER_ARGLIST_SIZE CORE_NUM_INTERRUPT
| ^~~~~~~~~~~~~~~~~~
.pio\libdeps\nanorp2040connect\Encoder/Encoder.h:153:50: note: in expansion of macro 'ENCODER_ARGLIST_SIZE'
153 | static Encoder_internal_state_t * interruptArgs[ENCODER_ARGLIST_SIZE];
| ^~~~~~~~~~~~~~~~~~~~
In file included from src\main.cpp:3:
.pio\libdeps\nanorp2040connect\Encoder/Encoder.h: In constructor 'Encoder::Encoder(uint8_t, uint8_t)':
.pio\libdeps\nanorp2040connect\Encoder/Encoder.h:82:11: error: 'struct Encoder_internal_state_t' has no member named 'pin1_register'
82 | encoder.pin1_register = PIN_TO_BASEREG(pin1);
| ^~~~~~~~~~~~~
.pio\libdeps\nanorp2040connect\Encoder/Encoder.h:82:27: error: 'PIN_TO_BASEREG' was not declared in this scope
82 | encoder.pin1_register = PIN_TO_BASEREG(pin1);
| ^~~~~~~~~~~~~~
.pio\libdeps\nanorp2040connect\Encoder/Encoder.h:83:11: error: 'struct Encoder_internal_state_t' has no member named 'pin1_bitmask'
83 | encoder.pin1_bitmask = PIN_TO_BITMASK(pin1);
| ^~~~~~~~~~~~
.pio\libdeps\nanorp2040connect\Encoder/Encoder.h:83:26: error: 'PIN_TO_BITMASK' was not declared in this scope
83 | encoder.pin1_bitmask = PIN_TO_BITMASK(pin1);
| ^~~~~~~~~~~~~~
.pio\libdeps\nanorp2040connect\Encoder/Encoder.h:84:11: error: 'struct Encoder_internal_state_t' has no member named 'pin2_register'
84 | encoder.pin2_register = PIN_TO_BASEREG(pin2);
| ^~~~~~~~~~~~~
.pio\libdeps\nanorp2040connect\Encoder/Encoder.h:85:11: error: 'struct Encoder_internal_state_t' has no member named 'pin2_bitmask'
85 | encoder.pin2_bitmask = PIN_TO_BITMASK(pin2);
| ^~~~~~~~~~~~
.pio\libdeps\nanorp2040connect\Encoder/Encoder.h:92:31: error: 'struct Encoder_internal_state_t' has no member named 'pin1_register'
92 | if (DIRECT_PIN_READ(encoder.pin1_register, encoder.pin1_bitmask)) s |= 1;
| ^~~~~~~~~~~~~
.pio\libdeps\nanorp2040connect\Encoder/Encoder.h:92:54: error: 'struct Encoder_internal_state_t' has no member named 'pin1_bitmask'
92 | if (DIRECT_PIN_READ(encoder.pin1_register, encoder.pin1_bitmask)) s |= 1;
| ^~~~~~~~~~~~
*** [.pio\build\nanorp2040connect\libff7\Encoder\Encoder.cpp.o] Error 1
.pio\libdeps\nanorp2040connect\Encoder/Encoder.h:92:7: error: 'DIRECT_PIN_READ' was not declared in this scope
92 | if (DIRECT_PIN_READ(encoder.pin1_register, encoder.pin1_bitmask)) s |= 1;
| ^~~~~~~~~~~~~~~
.pio\libdeps\nanorp2040connect\Encoder/Encoder.h:93:31: error: 'struct Encoder_internal_state_t' has no member named 'pin2_register'
93 | if (DIRECT_PIN_READ(encoder.pin2_register, encoder.pin2_bitmask)) s |= 2;
| ^~~~~~~~~~~~~
.pio\libdeps\nanorp2040connect\Encoder/Encoder.h:93:54: error: 'struct Encoder_internal_state_t' has no member named 'pin2_bitmask'
93 | if (DIRECT_PIN_READ(encoder.pin2_register, encoder.pin2_bitmask)) s |= 2;
| ^~~~~~~~~~~~
.pio\libdeps\nanorp2040connect\Encoder/Encoder.h:93:7: error: 'DIRECT_PIN_READ' was not declared in this scope
93 | if (DIRECT_PIN_READ(encoder.pin2_register, encoder.pin2_bitmask)) s |= 2;
| ^~~~~~~~~~~~~~~
.pio\libdeps\nanorp2040connect\Encoder/Encoder.h: In static member function 'static void Encoder::update(Encoder_internal_state_t*)':
.pio\libdeps\nanorp2040connect\Encoder/Encoder.h:292:40: error: 'struct Encoder_internal_state_t' has no member named 'pin1_register'
292 | uint8_t p1val = DIRECT_PIN_READ(arg->pin1_register, arg->pin1_bitmask);
| ^~~~~~~~~~~~~
.pio\libdeps\nanorp2040connect\Encoder/Encoder.h:292:60: error: 'struct Encoder_internal_state_t' has no member named 'pin1_bitmask'
292 | uint8_t p1val = DIRECT_PIN_READ(arg->pin1_register, arg->pin1_bitmask);
| ^~~~~~~~~~~~
.pio\libdeps\nanorp2040connect\Encoder/Encoder.h:292:19: error: 'DIRECT_PIN_READ' was not declared in this scope
292 | uint8_t p1val = DIRECT_PIN_READ(arg->pin1_register, arg->pin1_bitmask);
| ^~~~~~~~~~~~~~~
.pio\libdeps\nanorp2040connect\Encoder/Encoder.h:293:40: error: 'struct Encoder_internal_state_t' has no member named 'pin2_register'
293 | uint8_t p2val = DIRECT_PIN_READ(arg->pin2_register, arg->pin2_bitmask);
| ^~~~~~~~~~~~~
.pio\libdeps\nanorp2040connect\Encoder/Encoder.h:293:60: error: 'struct Encoder_internal_state_t' has no member named 'pin2_bitmask'
293 | uint8_t p2val = DIRECT_PIN_READ(arg->pin2_register, arg->pin2_bitmask);
| ^~~~~~~~~~~~
*** [.pio\build\nanorp2040connect\src\main.cpp.o] Error 1
========================================================== [FAILED] Took 25.21 seconds ==========================================================
* Der Terminalprozess "C:\Users\CarstenTower\.platformio\penv\Scripts\platformio.exe 'run', '--target', 'upload'" wurde mit folgendem Exitcode beendet: 1.
platform.ini
; PlatformIO Project Configuration File
;
; Build options: build flags, source filter
; Upload options: custom upload port, speed and extra flags
; Library options: dependencies, extra library storages
; Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html
[env:nanorp2040connect]
platform = raspberrypi
board = nanorp2040connect
; change microcontroller
board_build.mcu = rp2040
; change MCU frequency
board_build.f_cpu = 133000000L
upload_protocol = picotool
framework = arduino
monitor_speed = 115200
lib_deps =
paulstoffregen/Encoder @ ^1.4.2