AnalogIn

Dependencies:   mbed

Committer:
Wizo
Date:
Thu Nov 15 17:22:45 2018 +0000
Revision:
0:077d31186892
AnalogIn

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Wizo 0:077d31186892 1 #include "mbed.h"
Wizo 0:077d31186892 2 #include "Serial_HL.h"
Wizo 0:077d31186892 3
Wizo 0:077d31186892 4 SerialBLK pc(USBTX, USBRX);
Wizo 0:077d31186892 5 SvProtocol ua0(&pc);
Wizo 0:077d31186892 6
Wizo 0:077d31186892 7 // V2.0
Wizo 0:077d31186892 8 // BusOut leds(LED1,LED2,LED3,LED4); Bertl14
Wizo 0:077d31186892 9 // M0-Board
Wizo 0:077d31186892 10 BusOut leds(P1_13,P1_12,P1_7,P1_6,P1_4,P1_3,P1_1,P1_0,LED4,LED3,LED2,LED1);
Wizo 0:077d31186892 11
Wizo 0:077d31186892 12 AnalogIn a1(p19), a2(p20);
Wizo 0:077d31186892 13
Wizo 0:077d31186892 14 void CommandHandler();
Wizo 0:077d31186892 15
Wizo 0:077d31186892 16 int main(void)
Wizo 0:077d31186892 17 {
Wizo 0:077d31186892 18 pc.format(8,SerialBLK::None,1);
Wizo 0:077d31186892 19 pc.baud(115200);
Wizo 0:077d31186892 20 leds = 9;
Wizo 0:077d31186892 21
Wizo 0:077d31186892 22 ua0.SvMessage("AinDemo"); // Meldung zum PC senden
Wizo 0:077d31186892 23
Wizo 0:077d31186892 24 int16_t sv1=0, sv2=100; float sv3=0;
Wizo 0:077d31186892 25 Timer stw;
Wizo 0:077d31186892 26 stw.start();
Wizo 0:077d31186892 27 while(1) {
Wizo 0:077d31186892 28 CommandHandler();
Wizo 0:077d31186892 29 if( ua0.acqON && (stw.read_ms()>100) ) { // 10Hz
Wizo 0:077d31186892 30 // dieser Teil wird mit 10Hz aufgerufen
Wizo 0:077d31186892 31 stw.reset();
Wizo 0:077d31186892 32 sv1++;
Wizo 0:077d31186892 33 sv2++;
Wizo 0:077d31186892 34 sv3+=0.1;
Wizo 0:077d31186892 35 if( ua0.acqON ) {
Wizo 0:077d31186892 36 // nur wenn vom PC aus das Senden eingeschaltet wurde
Wizo 0:077d31186892 37 // wird auch etwas gesendet
Wizo 0:077d31186892 38 // >> 4 Korrektur der MBed-Lib für 12-Bit ADC
Wizo 0:077d31186892 39 ua0.WriteSvI16(1, a1.read_u16() >> 4);
Wizo 0:077d31186892 40 ua0.WriteSvI16(2, a2.read_u16() >> 4);
Wizo 0:077d31186892 41
Wizo 0:077d31186892 42 }
Wizo 0:077d31186892 43 }
Wizo 0:077d31186892 44 }
Wizo 0:077d31186892 45 return 1;
Wizo 0:077d31186892 46 }
Wizo 0:077d31186892 47
Wizo 0:077d31186892 48 void CommandHandler()
Wizo 0:077d31186892 49 {
Wizo 0:077d31186892 50 uint8_t cmd;
Wizo 0:077d31186892 51 int16_t idata1, idata2;
Wizo 0:077d31186892 52
Wizo 0:077d31186892 53 // Fragen ob überhaupt etwas im RX-Reg steht
Wizo 0:077d31186892 54 if( !pc.IsDataAvail() )
Wizo 0:077d31186892 55 return;
Wizo 0:077d31186892 56
Wizo 0:077d31186892 57 // wenn etwas im RX-Reg steht
Wizo 0:077d31186892 58 // Kommando lesen
Wizo 0:077d31186892 59 cmd = ua0.GetCommand();
Wizo 0:077d31186892 60
Wizo 0:077d31186892 61 if( cmd==2 ) {
Wizo 0:077d31186892 62 // cmd2 hat 2 int16 Parameter
Wizo 0:077d31186892 63 idata1 = ua0.ReadI16();
Wizo 0:077d31186892 64 idata2 = ua0.ReadI16();
Wizo 0:077d31186892 65 // für die Analyse den Wert einfach nur zum PC zurücksenden
Wizo 0:077d31186892 66 ua0.SvPrintf("Command2 %d %d", idata1, idata2);
Wizo 0:077d31186892 67 }
Wizo 0:077d31186892 68
Wizo 0:077d31186892 69 if( cmd==3 )
Wizo 0:077d31186892 70 {
Wizo 0:077d31186892 71 leds = ua0.ReadI16();
Wizo 0:077d31186892 72
Wizo 0:077d31186892 73 ua0.SvMessage("SetLeds");
Wizo 0:077d31186892 74 }
Wizo 0:077d31186892 75 }
Wizo 0:077d31186892 76
Wizo 0:077d31186892 77