Multiplexer lauffähig

Dependencies:   USBDevice mbed

Fork of Multiplexer-Test by H2M Teststand

Committer:
O_Shovah
Date:
Tue Sep 09 07:00:20 2014 +0000
Revision:
7:97edeef32c45
Parent:
6:d61faae1989d
Child:
11:e8386e95c56c
Cleaned Multiplexer running;; 090920140900

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