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 #include "FuncGenFSST.h"
WelzAlex 2:4d43beb83247 3
WelzAlex 2:4d43beb83247 4
WelzAlex 2:4d43beb83247 5 RectGen::RectGen()
WelzAlex 2:4d43beb83247 6 {
WelzAlex 2:4d43beb83247 7 val=0;
WelzAlex 2:4d43beb83247 8 SetPointsPerPeriod(20);
WelzAlex 2:4d43beb83247 9 }
WelzAlex 2:4d43beb83247 10
WelzAlex 2:4d43beb83247 11 void RectGen::SetPointsPerPeriod(int aPoints)
WelzAlex 2:4d43beb83247 12 {
WelzAlex 2:4d43beb83247 13 _inc = 2.0/aPoints;
WelzAlex 2:4d43beb83247 14 }
WelzAlex 2:4d43beb83247 15
WelzAlex 2:4d43beb83247 16 void RectGen::SetFrequ(float aFrequ)
WelzAlex 2:4d43beb83247 17 {
WelzAlex 2:4d43beb83247 18 SetPointsPerPeriod(1.0/aFrequ);
WelzAlex 2:4d43beb83247 19 }
WelzAlex 2:4d43beb83247 20
WelzAlex 2:4d43beb83247 21 void RectGen::CalcOneStep()
WelzAlex 2:4d43beb83247 22 {
WelzAlex 2:4d43beb83247 23 _phase = _phase + _inc;
WelzAlex 2:4d43beb83247 24 if( _phase>1.0 )
WelzAlex 2:4d43beb83247 25 _phase = -1 + (_phase - 1.0);
WelzAlex 2:4d43beb83247 26 val_orginal = _phase;
WelzAlex 2:4d43beb83247 27
WelzAlex 2:4d43beb83247 28 if(_phase > 0)
WelzAlex 2:4d43beb83247 29 val = 1;
WelzAlex 2:4d43beb83247 30 else
WelzAlex 2:4d43beb83247 31 val = -1;
WelzAlex 2:4d43beb83247 32 }
WelzAlex 2:4d43beb83247 33
WelzAlex 2:4d43beb83247 34
WelzAlex 2:4d43beb83247 35
WelzAlex 2:4d43beb83247 36 SignedRampGen::SignedRampGen()
WelzAlex 2:4d43beb83247 37 {
WelzAlex 2:4d43beb83247 38 val=0;
WelzAlex 2:4d43beb83247 39 SetPointsPerPeriod(20);
WelzAlex 2:4d43beb83247 40 }
WelzAlex 2:4d43beb83247 41
WelzAlex 2:4d43beb83247 42 void SignedRampGen::SetPointsPerPeriod(float aPoints)
WelzAlex 2:4d43beb83247 43 {
WelzAlex 2:4d43beb83247 44 _inc = 2.0/aPoints;
WelzAlex 2:4d43beb83247 45 }
WelzAlex 2:4d43beb83247 46
WelzAlex 2:4d43beb83247 47 void SignedRampGen::SetFrequ(float aFrequ)
WelzAlex 2:4d43beb83247 48 {
WelzAlex 2:4d43beb83247 49 SetPointsPerPeriod(1.0/aFrequ);
WelzAlex 2:4d43beb83247 50 }
WelzAlex 2:4d43beb83247 51
WelzAlex 2:4d43beb83247 52 void SignedRampGen::CalcOneStep()
WelzAlex 2:4d43beb83247 53 {
WelzAlex 2:4d43beb83247 54 val = val + _inc;
WelzAlex 2:4d43beb83247 55 if( val>1.0 )
WelzAlex 2:4d43beb83247 56 val = -1 + (val - 1.0);
WelzAlex 2:4d43beb83247 57 }
WelzAlex 2:4d43beb83247 58
WelzAlex 2:4d43beb83247 59
WelzAlex 2:4d43beb83247 60
WelzAlex 2:4d43beb83247 61
WelzAlex 2:4d43beb83247 62
WelzAlex 2:4d43beb83247 63
WelzAlex 2:4d43beb83247 64
WelzAlex 2:4d43beb83247 65
WelzAlex 2:4d43beb83247 66
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