Multiplexer lauffähig

Dependencies:   USBDevice mbed

Fork of Multiplexer-Test by H2M Teststand

Committer:
O_Shovah
Date:
Thu Nov 05 15:59:40 2015 +0000
Revision:
11:e8386e95c56c
Parent:
7:97edeef32c45
Version for Tobi

Who changed what in which revision?

UserRevisionLine numberNew contents of line
O_Shovah 0:42c1addaf061 1 #include "mbed.h"
O_Shovah 0:42c1addaf061 2
O_Shovah 1:84c53305b6a5 3 //***************************************************************************************************
O_Shovah 0:42c1addaf061 4 //Outputs
O_Shovah 0:42c1addaf061 5
O_Shovah 11:e8386e95c56c 6 DigitalOut Multiplex_select_0 (p25);
O_Shovah 11:e8386e95c56c 7 DigitalOut Multiplex_select_1 (p26);
O_Shovah 0:42c1addaf061 8 DigitalOut Myled (LED1);
O_Shovah 0:42c1addaf061 9
O_Shovah 11:e8386e95c56c 10 //DigitalOut timetest_0 (p30);
O_Shovah 11:e8386e95c56c 11 //DigitalOut timetest_1 (p29);
O_Shovah 3:cb991a9ba6a6 12
O_Shovah 11:e8386e95c56c 13 //BusOut unused(p18);
O_Shovah 0:42c1addaf061 14
O_Shovah 1:84c53305b6a5 15 //***************************************************************************************************
O_Shovah 0:42c1addaf061 16 //Inputs
O_Shovah 0:42c1addaf061 17
O_Shovah 0:42c1addaf061 18
O_Shovah 11:e8386e95c56c 19 AnalogIn Messkanal_0 (p15);
O_Shovah 11:e8386e95c56c 20 AnalogIn Messkanal_1 (p16);
O_Shovah 5:c89afbb7d0b2 21
O_Shovah 11:e8386e95c56c 22 AnalogIn DMS_Kanal (p17);
O_Shovah 0:42c1addaf061 23
O_Shovah 1:84c53305b6a5 24 //***************************************************************************************************
O_Shovah 0:42c1addaf061 25 //Communication
O_Shovah 0:42c1addaf061 26
O_Shovah 0:42c1addaf061 27 Serial pc(USBTX, USBRX);
O_Shovah 0:42c1addaf061 28
O_Shovah 0:42c1addaf061 29
O_Shovah 11:e8386e95c56c 30 volatile float Motorspannung, Bremsenspannung , Motorstrom, Aux, Bremsenstrom, Temperatur_1, Temperatur_2, Temperatur_3, DMS_Out, DMS_Skalierung;
O_Shovah 2:d815250d0377 31
O_Shovah 0:42c1addaf061 32
O_Shovah 1:84c53305b6a5 33 //***************************************************************************************************
O_Shovah 1:84c53305b6a5 34 //read sensors via multiplexer
O_Shovah 0:42c1addaf061 35
O_Shovah 0:42c1addaf061 36 void interr_read_sensors()
O_Shovah 0:42c1addaf061 37 {
O_Shovah 0:42c1addaf061 38
O_Shovah 5:c89afbb7d0b2 39 int Messwert_0 = 0, Messwert_1 = 0;
O_Shovah 0:42c1addaf061 40
O_Shovah 0:42c1addaf061 41 Multiplex_select_0 = 0, Multiplex_select_1 = 0;
O_Shovah 0:42c1addaf061 42
O_Shovah 0:42c1addaf061 43 //Selection of Multiplexer states
O_Shovah 0:42c1addaf061 44
O_Shovah 5:c89afbb7d0b2 45 for (int i=0; i<=4; i++) {
O_Shovah 5:c89afbb7d0b2 46 //while(i<=4) {
O_Shovah 0:42c1addaf061 47
O_Shovah 4:57163b0e7dbc 48 Multiplex_select_0 = i&0x01;
O_Shovah 4:57163b0e7dbc 49 Multiplex_select_1 = (i>>1)&0x01;
O_Shovah 4:57163b0e7dbc 50 wait(0.001);
O_Shovah 6:d61faae1989d 51
O_Shovah 5:c89afbb7d0b2 52 Messwert_0 = Messkanal_0.read_u16();
O_Shovah 5:c89afbb7d0b2 53 Messwert_1 = Messkanal_1.read_u16();
O_Shovah 0:42c1addaf061 54
O_Shovah 0:42c1addaf061 55 switch(i) {
O_Shovah 0:42c1addaf061 56 case 0: {
O_Shovah 5:c89afbb7d0b2 57 Multiplex_select_0 = 0;
O_Shovah 5:c89afbb7d0b2 58 Multiplex_select_1 = 0;
O_Shovah 5:c89afbb7d0b2 59 wait(0.001);
O_Shovah 5:c89afbb7d0b2 60 Temperatur_1 = Messwert_0 ;
O_Shovah 11:e8386e95c56c 61 Motorspannung = Messwert_1; //* 0.000515 - 0.05 ; Gute Näherung von 2- ~23V. Dannach zu niedrig.Z-Diode
O_Shovah 5:c89afbb7d0b2 62 break;
O_Shovah 5:c89afbb7d0b2 63 }
O_Shovah 4:57163b0e7dbc 64
O_Shovah 5:c89afbb7d0b2 65 case 1: {
O_Shovah 5:c89afbb7d0b2 66 Multiplex_select_0 = 1;
O_Shovah 5:c89afbb7d0b2 67 Multiplex_select_1 = 0;
O_Shovah 5:c89afbb7d0b2 68 wait(0.001);
O_Shovah 5:c89afbb7d0b2 69 Temperatur_2 = Messwert_0 ;
O_Shovah 11:e8386e95c56c 70 Motorstrom = Messwert_1; //* 0.000396 - 4.15;
O_Shovah 5:c89afbb7d0b2 71 break;
O_Shovah 5:c89afbb7d0b2 72 }
O_Shovah 5:c89afbb7d0b2 73
O_Shovah 5:c89afbb7d0b2 74 case 2: {
O_Shovah 5:c89afbb7d0b2 75 Multiplex_select_0 = 0;
O_Shovah 5:c89afbb7d0b2 76 Multiplex_select_1 = 1;
O_Shovah 5:c89afbb7d0b2 77 wait(0.001);
O_Shovah 5:c89afbb7d0b2 78 Temperatur_3 = Messwert_0;
O_Shovah 11:e8386e95c56c 79 Bremsenspannung = Messwert_1; //* 0.000515 - 0.05;Gute Näherung von 2- ~23V. Dannach zu niedrig.Z-Diode
O_Shovah 0:42c1addaf061 80 break;
O_Shovah 0:42c1addaf061 81 }
O_Shovah 0:42c1addaf061 82
O_Shovah 4:57163b0e7dbc 83 case 3: {
O_Shovah 5:c89afbb7d0b2 84 Multiplex_select_0 = 1;
O_Shovah 5:c89afbb7d0b2 85 Multiplex_select_1 = 1;
O_Shovah 5:c89afbb7d0b2 86 wait(0.001);
O_Shovah 11:e8386e95c56c 87 Aux = Messwert_0; // 1629;
O_Shovah 5:c89afbb7d0b2 88 Bremsenstrom = Messwert_1; //* 0.00032 - 15.8;
O_Shovah 0:42c1addaf061 89 break;
O_Shovah 0:42c1addaf061 90 }
O_Shovah 0:42c1addaf061 91
O_Shovah 0:42c1addaf061 92
O_Shovah 0:42c1addaf061 93 }
O_Shovah 0:42c1addaf061 94
O_Shovah 0:42c1addaf061 95 }
O_Shovah 4:57163b0e7dbc 96
O_Shovah 0:42c1addaf061 97 }
O_Shovah 2:d815250d0377 98
O_Shovah 0:42c1addaf061 99
O_Shovah 1:84c53305b6a5 100 //***************************************************************************************************
O_Shovah 5:c89afbb7d0b2 101 // MAIN:
O_Shovah 2:d815250d0377 102
O_Shovah 0:42c1addaf061 103 int main(void)
O_Shovah 0:42c1addaf061 104 {
O_Shovah 0:42c1addaf061 105
O_Shovah 11:e8386e95c56c 106 DMS_Skalierung = 1;
O_Shovah 11:e8386e95c56c 107
O_Shovah 0:42c1addaf061 108 while(true) {
O_Shovah 0:42c1addaf061 109
O_Shovah 11:e8386e95c56c 110
O_Shovah 11:e8386e95c56c 111
O_Shovah 5:c89afbb7d0b2 112 interr_read_sensors();
O_Shovah 7:97edeef32c45 113
O_Shovah 11:e8386e95c56c 114 DMS_Out = DMS_Kanal.read_u16()*DMS_Skalierung;
O_Shovah 6:d61faae1989d 115
O_Shovah 11:e8386e95c56c 116
O_Shovah 5:c89afbb7d0b2 117 pc.printf(" [Temperatur1, Motorspannung]; 0 %5.2f deg; 1 %5.2f V;", Temperatur_1, Motorspannung);
O_Shovah 5:c89afbb7d0b2 118 pc.printf(" [Temperatur2, Motorstrom]; 0 %5.2f deg; 1 %5.2f A;", Temperatur_2, Motorstrom);
O_Shovah 5:c89afbb7d0b2 119 pc.printf(" [Temperatur3, Bremsenspannung]; 0 %5.2f deg; 1 %5.2f V;", Temperatur_3, Bremsenspannung);
O_Shovah 5:c89afbb7d0b2 120 pc.printf(" [Aux, Bremsenstrom]; 0 %5.2f ; 1 %5.2f ;", Aux, Bremsenstrom);
O_Shovah 11:e8386e95c56c 121 pc.printf(" [DMS-Kanal]; 0 %5.2f ;", DMS_Out);
O_Shovah 11:e8386e95c56c 122 pc.printf(" \r\n\r\n");
O_Shovah 11:e8386e95c56c 123
O_Shovah 5:c89afbb7d0b2 124 wait(1);
O_Shovah 4:57163b0e7dbc 125
O_Shovah 0:42c1addaf061 126 }
O_Shovah 0:42c1addaf061 127 }