H2M Teststand
/
Multiplexer-Test
Multiplexer lauffähig
Fork of Multiplexer-Test by
Multiplexer_read.cpp@7:97edeef32c45, 2014-09-09 (annotated)
- 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?
User | Revision | Line number | New 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 | } |