Multiplexer lauffähig

Dependencies:   USBDevice mbed

Fork of Multiplexer-Test by H2M Teststand

Committer:
O_Shovah
Date:
Mon Sep 08 20:41:22 2014 +0000
Revision:
5:c89afbb7d0b2
Parent:
4:57163b0e7dbc
Child:
6:d61faae1989d
Multiplexer lauff?hig

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