H2M Teststand
/
Multiplexer-Test
Multiplexer lauffähig
Fork of Multiplexer-Test by
Multiplexer_read.cpp
- Committer:
- O_Shovah
- Date:
- 2014-09-08
- Revision:
- 5:c89afbb7d0b2
- Parent:
- 4:57163b0e7dbc
- Child:
- 6:d61faae1989d
File content as of revision 5:c89afbb7d0b2:
#include "mbed.h" //*************************************************************************************************** //Outputs DigitalOut Multiplex_select_0 (p15); DigitalOut Multiplex_select_1 (p16); DigitalOut Myled (LED1); DigitalOut timetest_0 (p30); DigitalOut timetest_1 (p29); //PWMout Mosfet(p21); BusOut unused(p18); //*************************************************************************************************** //Inputs AnalogIn Messkanal_0 (p19); AnalogIn Messkanal_1 (p20); //*************************************************************************************************** //Communication Serial pc(USBTX, USBRX); volatile float Motorspannung, Bremsenspannung , Motorstrom, Aux, Bremsenstrom, Temperatur_1, Temperatur_2, Temperatur_3, c1v1, c1v2 ; //*************************************************************************************************** //read sensors via multiplexer void interr_read_sensors() { int Messwert_0 = 0, Messwert_1 = 0; Multiplex_select_0 = 0, Multiplex_select_1 = 0; //Selection of Multiplexer states for (int i=0; i<=4; i++) { //while(i<=4) { Multiplex_select_0 = i&0x01; Multiplex_select_1 = (i>>1)&0x01; wait(0.001); Messwert_0 = Messkanal_0.read_u16(); Messwert_1 = Messkanal_1.read_u16(); switch(i) { case 0: { Multiplex_select_0 = 0; Multiplex_select_1 = 0; wait(0.001); Temperatur_1 = Messwert_0 ; Motorspannung = Messwert_1 * 0.000515 - 0.05 ; //Gute Näherung von 2- ~23V. Dannach zu niedrig.Z-Diode break; } case 1: { Multiplex_select_0 = 1; Multiplex_select_1 = 0; wait(0.001); Temperatur_2 = Messwert_0 ; Motorstrom = Messwert_1 * 0.000396 - 4.15;// break; } case 2: { Multiplex_select_0 = 0; Multiplex_select_1 = 1; wait(0.001); Temperatur_3 = Messwert_0; Bremsenspannung = Messwert_1 * 0.000515 - 0.05;//Gute Näherung von 2- ~23V. Dannach zu niedrig.Z-Diode break; } case 3: { Multiplex_select_0 = 1; Multiplex_select_1 = 1; wait(0.001); Aux = Messwert_0 / 1629; Bremsenstrom = Messwert_1; //* 0.00032 - 15.8; break; } } } } //*************************************************************************************************** // MAIN: int main(void) { while(true) { interr_read_sensors(); Multiplex_select_0 = 1, Multiplex_select_1 = 0; pc.printf(" [Temperatur1, Motorspannung]; 0 %5.2f deg; 1 %5.2f V;", Temperatur_1, Motorspannung); pc.printf(" [Temperatur2, Motorstrom]; 0 %5.2f deg; 1 %5.2f A;", Temperatur_2, Motorstrom); pc.printf(" [Temperatur3, Bremsenspannung]; 0 %5.2f deg; 1 %5.2f V;", Temperatur_3, Bremsenspannung); pc.printf(" [Aux, Bremsenstrom]; 0 %5.2f ; 1 %5.2f ;", Aux, Bremsenstrom); pc.printf(" \n\r\n\r"); wait(1); } }