train_controller/lib/single_axis_control/SingleAxis.cpp

25 lines
528 B
C++
Raw Normal View History

/** \File SingleAxis.cpp
* \copyright (c) 2025 len0rd
* \date 2025-01-14
*/
#include "SingleAxis.hpp"
LinearSingleAxis::LinearSingleAxis(uint8_t analogPin)
: m_pin{analogPin},
m_cal{
.min = 0,
.max = 1 << 10,
} {}
uint16_t LinearSingleAxis::readRaw() {
return analogRead(m_pin);
}
uint8_t LinearSingleAxis::readPercent() {
return map(readRaw(), m_cal.min, m_cal.max, 0, 100);
}
void LinearSingleAxis::applyCalibration(const LinearAnalogCalibration& cal) {
m_cal = cal;
}