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 "mbed.h"
WelzAlex 2:4d43beb83247 3 #include "Serial_HL.h"
WelzAlex 2:4d43beb83247 4 #include "FuncGenFSST.h"
WelzAlex 2:4d43beb83247 5
WelzAlex 2:4d43beb83247 6 SerialBLK pc(USBTX, USBRX);
WelzAlex 2:4d43beb83247 7 SvProtocol ua0(&pc);
WelzAlex 2:4d43beb83247 8
WelzAlex 2:4d43beb83247 9 SignedRampGen fg1;
WelzAlex 2:4d43beb83247 10 RectGen rg1;
WelzAlex 2:4d43beb83247 11
WelzAlex 2:4d43beb83247 12
WelzAlex 2:4d43beb83247 13
WelzAlex 2:4d43beb83247 14 float ampl1 = 1.0;
WelzAlex 2:4d43beb83247 15 float ampl2 = 0.5;
WelzAlex 2:4d43beb83247 16 float v1 = 0; // signal nach dem Verstellen der Amplidute
WelzAlex 2:4d43beb83247 17 float v2 = 0;
WelzAlex 2:4d43beb83247 18
WelzAlex 2:4d43beb83247 19
WelzAlex 2:4d43beb83247 20 void CommandHandler();
WelzAlex 2:4d43beb83247 21
WelzAlex 2:4d43beb83247 22 void ExecSignalChain(); // Signalverarbeitungskette 1x durchrechen
WelzAlex 2:4d43beb83247 23
WelzAlex 2:4d43beb83247 24 int main(void)
WelzAlex 2:4d43beb83247 25 {
WelzAlex 2:4d43beb83247 26 pc.format(8,SerialBLK::None,1); pc.baud(115200); // 115200
WelzAlex 2:4d43beb83247 27 ua0.SvMessage("FuncGen"); // Meldung zum PC senden
WelzAlex 2:4d43beb83247 28
WelzAlex 2:4d43beb83247 29 Timer stw; stw.start();
WelzAlex 2:4d43beb83247 30 while(1)
WelzAlex 2:4d43beb83247 31 {
WelzAlex 2:4d43beb83247 32 CommandHandler();
WelzAlex 2:4d43beb83247 33
WelzAlex 2:4d43beb83247 34 if( (stw.read_ms()>10) ) // 100Hz
WelzAlex 2:4d43beb83247 35 { // dieser Teil wird mit 100Hz aufgerufen
WelzAlex 2:4d43beb83247 36 ExecSignalChain();
WelzAlex 2:4d43beb83247 37 stw.reset();
WelzAlex 2:4d43beb83247 38 if( ua0.acqON )
WelzAlex 2:4d43beb83247 39 {
WelzAlex 2:4d43beb83247 40 ua0.WriteSV(1, v1); // v1 anzeigen
WelzAlex 2:4d43beb83247 41 ua0.WriteSV(2, v2); // v1 anzeigen
WelzAlex 2:4d43beb83247 42 }
WelzAlex 2:4d43beb83247 43 }
WelzAlex 2:4d43beb83247 44 }
WelzAlex 2:4d43beb83247 45 return 1;
WelzAlex 2:4d43beb83247 46 }
WelzAlex 2:4d43beb83247 47
WelzAlex 2:4d43beb83247 48 // wird mit 100Hz (Analyse) oder 44kHz (Echtzeit) aufgerufen
WelzAlex 2:4d43beb83247 49 void ExecSignalChain()
WelzAlex 2:4d43beb83247 50 {
WelzAlex 2:4d43beb83247 51 fg1.CalcOneStep();
WelzAlex 2:4d43beb83247 52 v1 = fg1.val*ampl1;
WelzAlex 2:4d43beb83247 53
WelzAlex 2:4d43beb83247 54 rg1.CalcOneStep();
WelzAlex 2:4d43beb83247 55 v2 = rg1.val*ampl2;
WelzAlex 2:4d43beb83247 56 //v1 = rg1.val_orginal*ampl2;
WelzAlex 2:4d43beb83247 57 }
WelzAlex 2:4d43beb83247 58
WelzAlex 2:4d43beb83247 59 void CommandHandler()
WelzAlex 2:4d43beb83247 60 {
WelzAlex 2:4d43beb83247 61 uint8_t cmd;
WelzAlex 2:4d43beb83247 62 if( !pc.IsDataAvail() )
WelzAlex 2:4d43beb83247 63 return;
WelzAlex 2:4d43beb83247 64
WelzAlex 2:4d43beb83247 65 cmd = ua0.GetCommand();
WelzAlex 2:4d43beb83247 66
WelzAlex 2:4d43beb83247 67 if( cmd==2 ) // Set Frequ.
WelzAlex 2:4d43beb83247 68 {
WelzAlex 2:4d43beb83247 69 fg1.SetFrequ(ua0.ReadF());
WelzAlex 2:4d43beb83247 70 ua0.SvMessage("Set Frequ1");
WelzAlex 2:4d43beb83247 71 }
WelzAlex 2:4d43beb83247 72
WelzAlex 2:4d43beb83247 73 if( cmd==3 ) // Set ampl
WelzAlex 2:4d43beb83247 74 {
WelzAlex 2:4d43beb83247 75 ampl1 = ua0.ReadF();
WelzAlex 2:4d43beb83247 76 ua0.SvMessage("Set Ampl1");
WelzAlex 2:4d43beb83247 77 }
WelzAlex 2:4d43beb83247 78
WelzAlex 2:4d43beb83247 79 if( cmd==4 ) // Set Frequ2
WelzAlex 2:4d43beb83247 80 {
WelzAlex 2:4d43beb83247 81 rg1.SetFrequ(ua0.ReadF());
WelzAlex 2:4d43beb83247 82 ua0.SvMessage("Set Frequ2");
WelzAlex 2:4d43beb83247 83 }
WelzAlex 2:4d43beb83247 84
WelzAlex 2:4d43beb83247 85 if( cmd==5 ) // Set ampl2
WelzAlex 2:4d43beb83247 86 {
WelzAlex 2:4d43beb83247 87 ampl2 = ua0.ReadF();
WelzAlex 2:4d43beb83247 88 ua0.SvMessage("Set Ampl2");
WelzAlex 2:4d43beb83247 89 }
WelzAlex 2:4d43beb83247 90 }
WelzAlex 2:4d43beb83247 91
WelzAlex 2:4d43beb83247 92
WelzAlex 2:4d43beb83247 93
WelzAlex 2:4d43beb83247 94
WelzAlex 2:4d43beb83247 95
WelzAlex 2:4d43beb83247 96
WelzAlex 2:4d43beb83247 97
WelzAlex 2:4d43beb83247 98
WelzAlex 2:4d43beb83247 99
WelzAlex 2:4d43beb83247 100
WelzAlex 2:4d43beb83247 101
WelzAlex 2:4d43beb83247 102
WelzAlex 2:4d43beb83247 103
WelzAlex 2:4d43beb83247 104
WelzAlex 2:4d43beb83247 105
WelzAlex 2:4d43beb83247 106
WelzAlex 2:4d43beb83247 107