main.cpp: Sensoren einlesen und Motoren ansteuern

Dependencies:   mbed

Committer:
luethale
Date:
Mon Apr 16 15:23:42 2018 +0000
Revision:
8:862bf9225953
Parent:
0:9a3e7847a4be
Regelung f?r Spurhaltung

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Helvis 0:9a3e7847a4be 1 /*
Helvis 0:9a3e7847a4be 2 * LowpassFilter.h
Helvis 0:9a3e7847a4be 3 * Copyright (c) 2018, ZHAW
Helvis 0:9a3e7847a4be 4 * All rights reserved.
Helvis 0:9a3e7847a4be 5 */
Helvis 0:9a3e7847a4be 6
Helvis 0:9a3e7847a4be 7 #ifndef LOWPASS_FILTER_H_
Helvis 0:9a3e7847a4be 8 #define LOWPASS_FILTER_H_
Helvis 0:9a3e7847a4be 9
Helvis 0:9a3e7847a4be 10 #include <cstdlib>
Helvis 0:9a3e7847a4be 11
Helvis 0:9a3e7847a4be 12 /**
Helvis 0:9a3e7847a4be 13 * This class implements a time-discrete 2nd order lowpass filter for a series of data values.
Helvis 0:9a3e7847a4be 14 * This filter can typically be used within a periodic task that takes measurements that need
Helvis 0:9a3e7847a4be 15 * to be filtered, like speed or position values.
Helvis 0:9a3e7847a4be 16 */
Helvis 0:9a3e7847a4be 17 class LowpassFilter {
Helvis 0:9a3e7847a4be 18
Helvis 0:9a3e7847a4be 19 public:
Helvis 0:9a3e7847a4be 20
Helvis 0:9a3e7847a4be 21 LowpassFilter();
Helvis 0:9a3e7847a4be 22 virtual ~LowpassFilter();
Helvis 0:9a3e7847a4be 23 void reset();
Helvis 0:9a3e7847a4be 24 void reset(float value);
Helvis 0:9a3e7847a4be 25 void setPeriod(float period);
Helvis 0:9a3e7847a4be 26 void setFrequency(float frequency);
Helvis 0:9a3e7847a4be 27 float getFrequency();
Helvis 0:9a3e7847a4be 28 float filter(float value);
Helvis 0:9a3e7847a4be 29
Helvis 0:9a3e7847a4be 30 private:
Helvis 0:9a3e7847a4be 31
Helvis 0:9a3e7847a4be 32 float period;
Helvis 0:9a3e7847a4be 33 float frequency;
Helvis 0:9a3e7847a4be 34 float a11, a12, a21, a22, b1, b2;
Helvis 0:9a3e7847a4be 35 float x1, x2;
Helvis 0:9a3e7847a4be 36 };
Helvis 0:9a3e7847a4be 37
Helvis 0:9a3e7847a4be 38 #endif /* LOWPASS_FILTER_H_ */