Stefan Kiegerl
/
FuncGen17
Func-Gen - basic setup
FuncGenMain_21.cpp@3:9fd12684fa88, 2021-03-23 (annotated)
- Committer:
- stkiegerl
- Date:
- Tue Mar 23 17:13:12 2021 +0000
- Revision:
- 3:9fd12684fa88
- Parent:
- 2:3abf5ddd9fc0
-
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
hollegha3 | 2:3abf5ddd9fc0 | 1 | #include "mbed.h" |
hollegha3 | 2:3abf5ddd9fc0 | 2 | #include "Serial_HL.h" |
hollegha3 | 2:3abf5ddd9fc0 | 3 | #include "FuncGenFSST.h" |
stkiegerl | 3:9fd12684fa88 | 4 | #include "Tp1Ord.h" |
hollegha3 | 2:3abf5ddd9fc0 | 5 | |
hollegha3 | 2:3abf5ddd9fc0 | 6 | SerialBLK pc(USBTX, USBRX); |
hollegha3 | 2:3abf5ddd9fc0 | 7 | SvProtocol ua0(&pc); |
hollegha3 | 2:3abf5ddd9fc0 | 8 | |
stkiegerl | 3:9fd12684fa88 | 9 | SignedRampGen fg1; |
stkiegerl | 3:9fd12684fa88 | 10 | float ampl1 = 1.0; |
stkiegerl | 3:9fd12684fa88 | 11 | float v1 = 0; // ausgang nach der Amplitude |
stkiegerl | 3:9fd12684fa88 | 12 | Tp1Ord tp1; |
stkiegerl | 3:9fd12684fa88 | 13 | |
hollegha3 | 2:3abf5ddd9fc0 | 14 | void CommandHandler(); |
hollegha3 | 2:3abf5ddd9fc0 | 15 | |
stkiegerl | 3:9fd12684fa88 | 16 | void ExecSignalChain(); |
stkiegerl | 3:9fd12684fa88 | 17 | |
stkiegerl | 3:9fd12684fa88 | 18 | Ticker tc; |
stkiegerl | 3:9fd12684fa88 | 19 | |
stkiegerl | 3:9fd12684fa88 | 20 | AnalogOut dac1(PA_5); |
stkiegerl | 3:9fd12684fa88 | 21 | |
hollegha3 | 2:3abf5ddd9fc0 | 22 | int main(void) |
hollegha3 | 2:3abf5ddd9fc0 | 23 | { |
hollegha3 | 2:3abf5ddd9fc0 | 24 | pc.format(8,SerialBLK::None,1); |
hollegha3 | 2:3abf5ddd9fc0 | 25 | pc.baud(500000); // 115200 |
hollegha3 | 2:3abf5ddd9fc0 | 26 | ua0.SvMessage("FuncGen"); // Meldung zum PC senden |
hollegha3 | 2:3abf5ddd9fc0 | 27 | |
stkiegerl | 3:9fd12684fa88 | 28 | // tc.attach_us(&ExecSignalChain, 100); // Mit timer-Interrupt für 10khz audio |
stkiegerl | 3:9fd12684fa88 | 29 | |
hollegha3 | 2:3abf5ddd9fc0 | 30 | Timer stw; stw.start(); |
hollegha3 | 2:3abf5ddd9fc0 | 31 | while(1) { |
hollegha3 | 2:3abf5ddd9fc0 | 32 | CommandHandler(); |
stkiegerl | 3:9fd12684fa88 | 33 | if( stw.read_us()>10000 ) { // 100Hz |
hollegha3 | 2:3abf5ddd9fc0 | 34 | stw.reset(); |
stkiegerl | 3:9fd12684fa88 | 35 | ExecSignalChain(); // zur simulation mit 100Hz aufrufen |
hollegha3 | 2:3abf5ddd9fc0 | 36 | if( ua0.acqON ) { |
stkiegerl | 3:9fd12684fa88 | 37 | ua0.WriteSV(1, v1); |
stkiegerl | 3:9fd12684fa88 | 38 | ua0.WriteSV(2, tp1.y); |
hollegha3 | 2:3abf5ddd9fc0 | 39 | } |
hollegha3 | 2:3abf5ddd9fc0 | 40 | } |
hollegha3 | 2:3abf5ddd9fc0 | 41 | } |
hollegha3 | 2:3abf5ddd9fc0 | 42 | return 1; |
hollegha3 | 2:3abf5ddd9fc0 | 43 | } |
hollegha3 | 2:3abf5ddd9fc0 | 44 | |
stkiegerl | 3:9fd12684fa88 | 45 | void ExecSignalChain() |
stkiegerl | 3:9fd12684fa88 | 46 | { |
stkiegerl | 3:9fd12684fa88 | 47 | fg1.CalcOneStep(); |
stkiegerl | 3:9fd12684fa88 | 48 | v1 = ampl1*fg1.val; |
stkiegerl | 3:9fd12684fa88 | 49 | tp1.CalcOneStep(v1); |
stkiegerl | 3:9fd12684fa88 | 50 | // Achtung skalierung und Übersteuerung bedenken |
stkiegerl | 3:9fd12684fa88 | 51 | // dac1.write( 0.5 + 0.5*v1); |
stkiegerl | 3:9fd12684fa88 | 52 | } |
stkiegerl | 3:9fd12684fa88 | 53 | |
hollegha3 | 2:3abf5ddd9fc0 | 54 | void CommandHandler() |
hollegha3 | 2:3abf5ddd9fc0 | 55 | { |
hollegha3 | 2:3abf5ddd9fc0 | 56 | uint8_t cmd; |
hollegha3 | 2:3abf5ddd9fc0 | 57 | if( !pc.IsDataAvail() ) |
hollegha3 | 2:3abf5ddd9fc0 | 58 | return; |
stkiegerl | 3:9fd12684fa88 | 59 | |
stkiegerl | 3:9fd12684fa88 | 60 | cmd = ua0.GetCommand(); |
stkiegerl | 3:9fd12684fa88 | 61 | |
stkiegerl | 3:9fd12684fa88 | 62 | if( cmd==2 ) |
stkiegerl | 3:9fd12684fa88 | 63 | { |
stkiegerl | 3:9fd12684fa88 | 64 | fg1.SetFrequ(ua0.ReadF()); |
stkiegerl | 3:9fd12684fa88 | 65 | ua0.SvMessage("Set Frequ"); |
stkiegerl | 3:9fd12684fa88 | 66 | } |
stkiegerl | 3:9fd12684fa88 | 67 | if( cmd==3 ) |
stkiegerl | 3:9fd12684fa88 | 68 | { |
stkiegerl | 3:9fd12684fa88 | 69 | ampl1=ua0.ReadF(); |
stkiegerl | 3:9fd12684fa88 | 70 | ua0.SvMessage("Set Ampl."); |
stkiegerl | 3:9fd12684fa88 | 71 | } |
stkiegerl | 3:9fd12684fa88 | 72 | if( cmd==4 ) |
stkiegerl | 3:9fd12684fa88 | 73 | { |
stkiegerl | 3:9fd12684fa88 | 74 | tp1.SetAlpha(ua0.ReadF()); |
stkiegerl | 3:9fd12684fa88 | 75 | ua0.SvMessage("Set Alpha"); |
stkiegerl | 3:9fd12684fa88 | 76 | } |
stkiegerl | 3:9fd12684fa88 | 77 | } |