Function Generator for TINF 2021

Committer:
stkiegerl
Date:
Tue Mar 09 20:46:10 2021 +0000
Revision:
0:464b401734fd
Child:
1:dbd814e65f1d
initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
stkiegerl 0:464b401734fd 1 #ifndef FuncGenFSST_h
stkiegerl 0:464b401734fd 2 #define FuncGenFSST_h
stkiegerl 0:464b401734fd 3
stkiegerl 0:464b401734fd 4 // Amplituden fix auf +/-1
stkiegerl 0:464b401734fd 5
stkiegerl 0:464b401734fd 6 class SignedRampGen {
stkiegerl 0:464b401734fd 7 public:
stkiegerl 0:464b401734fd 8 float val; // momentaner Ausgangswert
stkiegerl 0:464b401734fd 9 private:
stkiegerl 0:464b401734fd 10 float _inc;
stkiegerl 0:464b401734fd 11 public:
stkiegerl 0:464b401734fd 12 SignedRampGen(); // Konstruktor
stkiegerl 0:464b401734fd 13
stkiegerl 0:464b401734fd 14 void SetPointsPerPeriod(float aPoints);
stkiegerl 0:464b401734fd 15
stkiegerl 0:464b401734fd 16 // bezogen auf Fsample 0..0.5
stkiegerl 0:464b401734fd 17 void SetFrequ(float aFrequ);
stkiegerl 0:464b401734fd 18
stkiegerl 0:464b401734fd 19 // Einen Abtastwert berechnen
stkiegerl 0:464b401734fd 20 // wird bei z.B. Fsample=100Hz 100x pro sec afgerufen
stkiegerl 0:464b401734fd 21 void CalcOneStep();
stkiegerl 0:464b401734fd 22 };
stkiegerl 0:464b401734fd 23
stkiegerl 0:464b401734fd 24
stkiegerl 0:464b401734fd 25 class TriangleGen {
stkiegerl 0:464b401734fd 26 public:
stkiegerl 0:464b401734fd 27 float val; // momentaner Ausgangswert
stkiegerl 0:464b401734fd 28 private:
stkiegerl 0:464b401734fd 29 float _inc;
stkiegerl 0:464b401734fd 30 int _state;
stkiegerl 0:464b401734fd 31 float _phase;
stkiegerl 0:464b401734fd 32 public:
stkiegerl 0:464b401734fd 33 TriangleGen();
stkiegerl 0:464b401734fd 34
stkiegerl 0:464b401734fd 35 void SetPointsPerPeriod(float aPoints);
stkiegerl 0:464b401734fd 36
stkiegerl 0:464b401734fd 37 // bezogen auf Fsample 0..0.5
stkiegerl 0:464b401734fd 38 void SetFrequ(float aFrequ);
stkiegerl 0:464b401734fd 39
stkiegerl 0:464b401734fd 40 // Einen Abtastwert berechnen
stkiegerl 0:464b401734fd 41 void CalcOneStep();
stkiegerl 0:464b401734fd 42 };
stkiegerl 0:464b401734fd 43
stkiegerl 0:464b401734fd 44
stkiegerl 0:464b401734fd 45 class RectGen {
stkiegerl 0:464b401734fd 46 public:
stkiegerl 0:464b401734fd 47 float val; // momentaner Ausgangswert
stkiegerl 0:464b401734fd 48 private:
stkiegerl 0:464b401734fd 49 float _inc;
stkiegerl 0:464b401734fd 50 float _phase;
stkiegerl 0:464b401734fd 51 float _thrs;
stkiegerl 0:464b401734fd 52 public:
stkiegerl 0:464b401734fd 53 RectGen();
stkiegerl 0:464b401734fd 54
stkiegerl 0:464b401734fd 55 void SetPointsPerPeriod(float aPoints);
stkiegerl 0:464b401734fd 56
stkiegerl 0:464b401734fd 57 void SetFrequ(float aFrequ);
stkiegerl 0:464b401734fd 58
stkiegerl 0:464b401734fd 59 // Dauer des ON-Pulses in Prozent ( 0..1 )
stkiegerl 0:464b401734fd 60 void SetPulsWidth(float aPercent)
stkiegerl 0:464b401734fd 61 {
stkiegerl 0:464b401734fd 62 _thrs=aPercent; // m�glicherweise andere Formel
stkiegerl 0:464b401734fd 63 }
stkiegerl 0:464b401734fd 64
stkiegerl 0:464b401734fd 65 // Einen Abtastwert berechnen
stkiegerl 0:464b401734fd 66 void CalcOneStep();
stkiegerl 0:464b401734fd 67 };
stkiegerl 0:464b401734fd 68
stkiegerl 0:464b401734fd 69 #endif
stkiegerl 0:464b401734fd 70
stkiegerl 0:464b401734fd 71
stkiegerl 0:464b401734fd 72
stkiegerl 0:464b401734fd 73
stkiegerl 0:464b401734fd 74
stkiegerl 0:464b401734fd 75
stkiegerl 0:464b401734fd 76
stkiegerl 0:464b401734fd 77
stkiegerl 0:464b401734fd 78
stkiegerl 0:464b401734fd 79
stkiegerl 0:464b401734fd 80
stkiegerl 0:464b401734fd 81
stkiegerl 0:464b401734fd 82
stkiegerl 0:464b401734fd 83
stkiegerl 0:464b401734fd 84
stkiegerl 0:464b401734fd 85
stkiegerl 0:464b401734fd 86
stkiegerl 0:464b401734fd 87
stkiegerl 0:464b401734fd 88
stkiegerl 0:464b401734fd 89