first commit

This commit is contained in:
2026-06-22 19:22:39 +02:00
commit 24b59a62d6
8 changed files with 1392 additions and 0 deletions

102
.clangd Normal file
View File

@@ -0,0 +1,102 @@
CompileFlags:
Add:
- -target
- arm-none-eabi
- --gcc-toolchain=/home/edwin/.platformio/packages/toolchain-rp2040-earlephilhower
- -stdlib=libstdc++
- -I/home/edwin/.platformio/packages/framework-arduinopico/include/rp2040
- -I/home/edwin/.platformio/packages/framework-arduinopico/include/rp2040/pico_base
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/rp2040/hardware_regs/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/rp2040/hardware_structs/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/rp2040/pico_platform/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/rp2_common/pico_btstack/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/rp2_common/pico_cyw43_arch/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/rp2_common/pico_cyw43_driver/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/lib/cyw43-driver/src
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/lib/btstack/src
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/lib/btstack/3rd-party/bluedroid/decoder/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/lib/btstack/3rd-party/bluedroid/encoder/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/lib/btstack/3rd-party/yxml
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/lib/btstack/platform/embedded
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/rp2_common/cmsis/stub/CMSIS/Device/RP2040/Include
- -I/home/edwin/.platformio/packages/framework-arduinopico/cores/rp2040/api/deprecated-avr-comp
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/lib/tinyusb/src
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/boards/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/common/hardware_claim/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/common/pico_base/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/common/pico_base_headers/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/common/pico_binary_info/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/common/pico_bit_ops/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/common/pico_divider/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/common/pico_stdlib/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/common/pico_sync/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/common/pico_time/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/common/pico_usb_reset_interface/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/common/pico_util/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/common/pico_stdlib_headers/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/common/pico_usb_reset_interface_headers/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/rp2_common/boot_bootrom_headers/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/rp2_common/cmsis/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/rp2_common/cmsis/stub/CMSIS/Core/Include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/rp2_common/hardware_adc/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/rp2_common/hardware_base/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/rp2_common/hardware_boot_lock/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/rp2_common/hardware_clocks/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/rp2_common/hardware_divider/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/rp2_common/hardware_dma/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/rp2_common/hardware_exception/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/rp2_common/hardware_flash/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/rp2_common/hardware_gpio/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/rp2_common/hardware_i2c/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/rp2_common/hardware_interp/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/rp2_common/hardware_irq/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/rp2_common/hardware_rtc/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/rp2_common/hardware_pio/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/rp2_common/hardware_pll/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/rp2_common/hardware_powman/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/rp2_common/hardware_pwm/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/rp2_common/hardware_resets/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/rp2_common/hardware_spi/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/rp2_common/hardware_sync/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/rp2_common/hardware_sync_spin_lock/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/rp2_common/hardware_timer/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/rp2_common/hardware_uart/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/rp2_common/hardware_vreg/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/rp2_common/hardware_watchdog/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/rp2_common/hardware_xosc/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/rp2_common/pico_aon_timer/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/rp2_common/pico_async_context/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/rp2_common/pico_bootrom/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/rp2_common/pico_double/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/rp2_common/pico_fix/rp2040_usb_device_enumeration/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/rp2_common/pico_flash/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/rp2_common/pico_float/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/rp2_common/pico_int64_ops/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/rp2_common/pico_lwip/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/rp2_common/pico_multicore/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/rp2_common/pico_platform/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/rp2_common/pico_platform_common/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/rp2_common/pico_platform_compiler/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/rp2_common/pico_platform_sections/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/rp2_common/pico_platform_panic/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/rp2_common/pico_printf/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/rp2_common/pico_runtime/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/rp2_common/pico_runtime_init/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/rp2_common/pico_rand/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/rp2_common/pico_stdio/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/rp2_common/pico_stdio_uart/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/src/rp2_common/pico_unique_id/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/pico-sdk/lib/lwip/src/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/cores/rp2040/freertos
- -I/home/edwin/.platformio/packages/framework-arduinopico/cores/rp2040
- -I/home/edwin/.platformio/packages/framework-arduinopico/cores/rp2040/api/deprecated
- -I/home/edwin/.platformio/packages/framework-arduinopico/include
- -I/home/edwin/.platformio/packages/framework-arduinopico/variants/adafruit_feather
- '-I/home/edwin/Projecten/code/CPP/ADAFRUIT/Father2040/.pio/libdeps/adafruit_feather/Adafruit NeoPixel'
- -I/home/edwin/.platformio/packages/framework-arduinopico/libraries/Wire/src
- -I/home/edwin/.platformio/packages/toolchain-rp2040-earlephilhower/arm-none-eabi/include/c++/14.3.0
- -I/home/edwin/.platformio/packages/toolchain-rp2040-earlephilhower/arm-none-eabi/include/c++/14.3.0/arm-none-eabi
- -I/home/edwin/.platformio/packages/toolchain-rp2040-earlephilhower/lib/gcc/arm-none-eabi/14.3.0/include-fixed
- -I/home/edwin/.platformio/packages/toolchain-rp2040-earlephilhower/lib/gcc/arm-none-eabi/14.3.0/include
- -I/home/edwin/.platformio/packages/toolchain-rp2040-earlephilhower/arm-none-eabi/include
CompilationDatabase: .

5
.gitignore vendored Normal file
View File

@@ -0,0 +1,5 @@
.pio
.vscode/.browse.c_cpp.db*
.vscode/c_cpp_properties.json
.vscode/launch.json
.vscode/ipch

10
.vscode/extensions.json vendored Normal file
View File

@@ -0,0 +1,10 @@
{
// See http://go.microsoft.com/fwlink/?LinkId=827846
// for the documentation about the extensions.json format
"recommendations": [
"platformio.platformio-ide"
],
"unwantedRecommendations": [
"ms-vscode.cpptools-extension-pack"
]
}

6
.vscode/settings.json vendored Normal file
View File

@@ -0,0 +1,6 @@
{
"clangd.arguments": [
"--compile-commands-dir=${workspaceFolder}",
"--query-driver=/home/edwin/.platformio/packages/toolchain-rp2040-earlephilhower/bin/arm-none-eabi-*"
]
}

0
README.md Normal file
View File

1178
compile_commands.json Normal file

File diff suppressed because it is too large Load Diff

13
platformio.ini Normal file
View File

@@ -0,0 +1,13 @@
[env]
platform = https://github.com/maxgerhardt/platform-raspberrypi.git
framework = arduino
monitor_speed = 115200
board_build.core = earlephilhower
board_build.filesystem_size = 0.5m
[env:adafruit_feather]
board = adafruit_feather
lib_deps =
sstaub/Seesaw@1.1.0
adafruit/Adafruit NeoPixel@1.12.3
check_skip_packages = true

78
src/main.cpp Normal file
View File

@@ -0,0 +1,78 @@
#include <Arduino.h>
#include <Wire.h>
#include "Seesaw.h"
#include <Adafruit_NeoPixel.h>
#define FEATHER_LED_PIN 16
SeesawEncoder encoder(ENCODER_I2C_ADDRESS, Wire);
Adafruit_NeoPixel featherLED(1, FEATHER_LED_PIN, NEO_GRB + NEO_KHZ800);
int32_t last_position = 0;
uint8_t currentR = 0, currentG = 0, currentB = 0;
void setEncoderColor(int32_t pos) {
uint8_t r = 0, g = 0, b = 0;
int16_t hue = (pos * 5) % 360;
if (hue < 0) hue += 360;
uint8_t region = hue / 60;
uint8_t phase = hue % 60;
uint8_t p = (32 * phase) / 60;
uint8_t q = 32 - p;
switch (region) {
case 0: r = 32; g = p; break;
case 1: r = q; g = 32; break;
case 2: g = 32; b = p; break;
case 3: g = q; b = 32; break;
case 4: r = p; b = 32; break;
case 5: r = 32; b = q; break;
}
currentR = r; currentG = g; currentB = b;
Serial.print("red: ");
Serial.print(currentR);
Serial.print(" Green: ");
Serial.print(currentG);
Serial.print(" Blue: ");
Serial.println(currentB);
encoder.pixel(currentR, currentG, currentB);
}
void setup() {
Serial.begin(115200);
Serial.println("\nAdafruit Feather RP2040 + I2C Encoder Demo");
Wire.setSDA(2);
Wire.setSCL(3);
Wire.begin();
featherLED.begin();
featherLED.setBrightness(50);
featherLED.show();
encoder.begin();
encoder.pixel(0, 0, 0);
delay(100);
last_position = encoder.position();
setEncoderColor(last_position);
}
void loop() {
int32_t pos = encoder.position();
if (pos != last_position) {
last_position = pos;
setEncoderColor(pos);
}
if (encoder.button()) {
featherLED.setPixelColor(0,
map(currentR, 0, 32, 0, 255),
map(currentG, 0, 32, 0, 255),
map(currentB, 0, 32, 0, 255));
featherLED.show();
delay(200);
while (encoder.button()) delay(10);
}
delay(10);
}