Add expression pedal support on GPIO5 (CC 4)

This commit is contained in:
ash
2026-07-02 04:00:06 +00:00
parent ae2891fca8
commit 08d6fc8701
3 changed files with 88 additions and 1 deletions
+27
View File
@@ -0,0 +1,27 @@
#pragma once
#include <cstdint>
class UsbMidiTransport;
class ExpressionPedal {
public:
ExpressionPedal(uint8_t adc_pin = 5);
void begin();
void update(UsbMidiTransport& midi);
uint8_t get_value() const { return current_value; }
private:
uint8_t adc_pin;
uint8_t current_value;
uint8_t last_sent_value;
uint8_t midi_channel;
uint8_t midi_cc;
static const uint8_t HYSTERESIS = 3;
static const uint16_t READ_INTERVAL_MS = 20;
uint32_t last_read_time;
uint8_t adc_to_midi(uint16_t adc_value);
};