FunkGen_Rechteck_Sägezahn

Dependencies:   Serial_HL mbed

Committer:
WelzAlex
Date:
Tue May 14 12:55:41 2019 +0000
Revision:
2:4d43beb83247
FunkGen_Rechteck_Saegezahn

Who changed what in which revision?

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