finished new encoder

This commit is contained in:
2023-03-23 19:31:02 +01:00
parent 2f0027b68b
commit e4cdc5f98d
8 changed files with 104 additions and 13 deletions
+8 -7
View File
@@ -47,7 +47,7 @@ void Speedometer::runSpeedometer() {
uint16_t elapsed_time = time - last_millis_calc;
last_millis_calc = time;
int16_t count = this->pulseCounter->get_value();
int16_t count = this->pulseCounter->getValue();
switch (this->currentDirection) {
case Direction::Forward :
this->addValToBuf(count);
@@ -93,20 +93,23 @@ void Speedometer::setNumOfValForAvg(uint8_t val) {
void Speedometer::setEncFilter(uint16_t val) {
if (val > 1023)
val = 1023;
this->pulseCounter->set_filter_value(val);
this->pulseCounter->setFilterValue(val);
}
void Speedometer::calibrationMeasurementStart() {
std::cout << "Start" << std::endl;
this->calibrationRunning = true;
this->pulseCounter->clear();
this->pulseCounter->resume();
}
uint16_t Speedometer::calibrationMeasurementStop() {
std::cout << "Ende" << std::endl;
this->calibrationRunning = false;
uint16_t res = abs(this->pulseCounter->get_value());
uint16_t res = abs(this->pulseCounter->getValue());
this->pulseCounter->clear();
this->pulseCounter->resume();
std::cout << "Result: " << res << std::endl;
return res;
}
@@ -114,10 +117,8 @@ void Speedometer::init(uint8_t pin, double diameter, uint16_t steps) {
this->diameter = diameter;
this->steps = steps;
this->pulseCounter = new PulseCounter();
this->pulseCounter->initialise(pin, PCNT_PIN_NOT_USED);
this->pulseCounter->set_mode(PCNT_COUNT_INC, PCNT_COUNT_DIS, PCNT_MODE_KEEP, PCNT_MODE_KEEP);
this->pulseCounter->set_filter_value(1000); // ignore pulses less than 1000 x 2.5ns
this->pulseCounter = new Counter(pin);
this->pulseCounter->setFilterValue(1000); // ignore pulses less than 1000 x 2.5ns
this->pulseCounter->clear();
this->pulseCounter->resume();