einfacher TP, TP1Ordn.cpp und .h sind wichtig

Dependencies:   Serial_HL mbed

Fork of ProcVisDemo by michael hollegha

Committer:
mSeiser
Date:
Wed May 03 16:04:57 2017 +0000
Revision:
2:a8f3233502df
nur einfacher TP;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mSeiser 2:a8f3233502df 1 #include "mbed.h"
mSeiser 2:a8f3233502df 2 #include "Serial_HL.h"
mSeiser 2:a8f3233502df 3 #include "FunkGen.h"
mSeiser 2:a8f3233502df 4 #include "TP1Ord.h"
mSeiser 2:a8f3233502df 5
mSeiser 2:a8f3233502df 6 // 2 Generatoren mit switch umschalten
mSeiser 2:a8f3233502df 7
mSeiser 2:a8f3233502df 8 SerialBLK pc(USBTX, USBRX);
mSeiser 2:a8f3233502df 9 SvProtocol ua0(&pc);
mSeiser 2:a8f3233502df 10
mSeiser 2:a8f3233502df 11 void CommandHandler();
mSeiser 2:a8f3233502df 12 void ExecSignalChain();
mSeiser 2:a8f3233502df 13
mSeiser 2:a8f3233502df 14 SignedRampGen fg1;
mSeiser 2:a8f3233502df 15 RectGen fg2;
mSeiser 2:a8f3233502df 16 TP1Ord tp1;
mSeiser 2:a8f3233502df 17 float amp1 = 1.0;
mSeiser 2:a8f3233502df 18 float v1; // Ausgangswert mit amp1 multipliziert
mSeiser 2:a8f3233502df 19
mSeiser 2:a8f3233502df 20
mSeiser 2:a8f3233502df 21 int swt=1; // 1..v1 auf fg1 geschaltet 2..v1 auf fg2 geschaltet
mSeiser 2:a8f3233502df 22
mSeiser 2:a8f3233502df 23 int main(void)
mSeiser 2:a8f3233502df 24 {
mSeiser 2:a8f3233502df 25 pc.format(8,SerialBLK::None,1); pc.baud(500000); // 115200
mSeiser 2:a8f3233502df 26
mSeiser 2:a8f3233502df 27 ua0.SvMessage("FuncGenMain3"); // Meldung zum PC senden
mSeiser 2:a8f3233502df 28
mSeiser 2:a8f3233502df 29 Timer stw; stw.start();
mSeiser 2:a8f3233502df 30 while(1) // while(1)-Loop der mit dem PC kommuniziert
mSeiser 2:a8f3233502df 31 {
mSeiser 2:a8f3233502df 32 CommandHandler();
mSeiser 2:a8f3233502df 33 if( (stw.read_ms()>10) ) // 100Hz
mSeiser 2:a8f3233502df 34 { // dieser Teil wird mit 100Hz aufgerufen
mSeiser 2:a8f3233502df 35 stw.reset();
mSeiser 2:a8f3233502df 36 ExecSignalChain(); // Funktionsgeneratoren rechnen
mSeiser 2:a8f3233502df 37 if( ua0.acqON ) {
mSeiser 2:a8f3233502df 38 ua0.WriteSV(1, tp1.y);
mSeiser 2:a8f3233502df 39 }
mSeiser 2:a8f3233502df 40 }
mSeiser 2:a8f3233502df 41 }
mSeiser 2:a8f3233502df 42 return 1;
mSeiser 2:a8f3233502df 43 }
mSeiser 2:a8f3233502df 44
mSeiser 2:a8f3233502df 45 void ExecSignalChain()
mSeiser 2:a8f3233502df 46 {
mSeiser 2:a8f3233502df 47 fg1.CalcOneStep();
mSeiser 2:a8f3233502df 48 fg2.CalcOneStep();
mSeiser 2:a8f3233502df 49 if( swt==1 )
mSeiser 2:a8f3233502df 50 v1 = amp1*fg1.val;
mSeiser 2:a8f3233502df 51 if( swt==2 )
mSeiser 2:a8f3233502df 52 v1 = amp1*fg2.val;
mSeiser 2:a8f3233502df 53
mSeiser 2:a8f3233502df 54 tp1.CalcOneStep(v1);
mSeiser 2:a8f3233502df 55 }
mSeiser 2:a8f3233502df 56
mSeiser 2:a8f3233502df 57 void CommandHandler()
mSeiser 2:a8f3233502df 58 {
mSeiser 2:a8f3233502df 59 uint8_t cmd;
mSeiser 2:a8f3233502df 60 if( !pc.IsDataAvail() )
mSeiser 2:a8f3233502df 61 return;
mSeiser 2:a8f3233502df 62 cmd = ua0.GetCommand();
mSeiser 2:a8f3233502df 63
mSeiser 2:a8f3233502df 64 // mithilfe von Kommandos vom PC Frequenz und Amplitude verstellen
mSeiser 2:a8f3233502df 65
mSeiser 2:a8f3233502df 66 if( cmd==2 ) // Frequenz
mSeiser 2:a8f3233502df 67 {
mSeiser 2:a8f3233502df 68 float frequ = ua0.ReadF();
mSeiser 2:a8f3233502df 69 fg1.SetFrequ(frequ); fg2.SetFrequ(frequ);
mSeiser 2:a8f3233502df 70 ua0.SvMessage("Set Frequ");
mSeiser 2:a8f3233502df 71 }
mSeiser 2:a8f3233502df 72
mSeiser 2:a8f3233502df 73 if( cmd==3 ) // Amplitute
mSeiser 2:a8f3233502df 74 {
mSeiser 2:a8f3233502df 75 amp1 = ua0.ReadF();
mSeiser 2:a8f3233502df 76 ua0.SvMessage("Set Frequ");
mSeiser 2:a8f3233502df 77 }
mSeiser 2:a8f3233502df 78
mSeiser 2:a8f3233502df 79 if( cmd==4 ) // Funktionsgeneratoren umschalten
mSeiser 2:a8f3233502df 80 {
mSeiser 2:a8f3233502df 81 swt = ua0.ReadI16();
mSeiser 2:a8f3233502df 82 ua0.SvMessage("Switch FG");
mSeiser 2:a8f3233502df 83 }
mSeiser 2:a8f3233502df 84 if( cmd==5 ) // Funktionsgeneratoren umschalten
mSeiser 2:a8f3233502df 85 {
mSeiser 2:a8f3233502df 86 tp1.SetAlpha(ua0.ReadF());
mSeiser 2:a8f3233502df 87 ua0.SvMessage("Set Alpha");
mSeiser 2:a8f3233502df 88 }
mSeiser 2:a8f3233502df 89 }
mSeiser 2:a8f3233502df 90
mSeiser 2:a8f3233502df 91
mSeiser 2:a8f3233502df 92
mSeiser 2:a8f3233502df 93
mSeiser 2:a8f3233502df 94
mSeiser 2:a8f3233502df 95
mSeiser 2:a8f3233502df 96
mSeiser 2:a8f3233502df 97
mSeiser 2:a8f3233502df 98
mSeiser 2:a8f3233502df 99
mSeiser 2:a8f3233502df 100
mSeiser 2:a8f3233502df 101
mSeiser 2:a8f3233502df 102
mSeiser 2:a8f3233502df 103
mSeiser 2:a8f3233502df 104
mSeiser 2:a8f3233502df 105