28 lines
552 B
C++
28 lines
552 B
C++
#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);
|
|
};
|