diff options
| author | Avi Levkovich <avi@twine-s.com> | 2018-07-31 10:06:29 +0300 |
|---|---|---|
| committer | Avi Levkovich <avi@twine-s.com> | 2018-07-31 10:06:29 +0300 |
| commit | 90b65a54cd28ee8b0d908c86795a7096c4073e83 (patch) | |
| tree | 0527efed7076b4b79113a76b1e6b8cbdf6b9ef34 /Software/Embedded_SW/Embedded/Modules | |
| parent | 4ff8fc0265f11be7b73548e36c7ee3d1debfb8e4 (diff) | |
| download | Tango-90b65a54cd28ee8b0d908c86795a7096c4073e83.tar.gz Tango-90b65a54cd28ee8b0d908c86795a7096c4073e83.zip | |
update the CalculateDispenserPressure function
Diffstat (limited to 'Software/Embedded_SW/Embedded/Modules')
| -rw-r--r-- | Software/Embedded_SW/Embedded/Modules/IDS/IDS_init.c | 24 | ||||
| -rw-r--r-- | Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Dispenser.c | 20 |
2 files changed, 32 insertions, 12 deletions
diff --git a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_init.c b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_init.c index 8a51bc210..f2901ad84 100644 --- a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_init.c +++ b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_init.c @@ -36,29 +36,33 @@ float CalculateDispenserPressure (int DispenserId) DispenserPressure[DispenserId] = 3000 - temp; */ - float Vlow = 0.004 * 130; // 4mA*130ohm (0 Pascal) - float VHigh = 0.020 *130; // 20mA*130ohm (1M Pascal) + float Vlow = 0.004 * 130; // 4mA*130ohm = 0.52 V(0 Pascal) + float VHigh = 0.020 *130; // 20mA*130ohm = 2.6V (1M Pascal) - float Bits_0Pascal = Vlow * 4096 / 3; // Vlow * 4096bit / 3Vref - float Bits_1MPascal = VHigh * 4096 / 3; // VHigh * 4096bit / 3Vref + float Bits_0Pascal = Vlow * 4096 / 3; // Vlow * 4096bit / 3Vref = 709.973328 bits + float Bits_1MPascal = VHigh * 4096 / 3; // VHigh * 4096bit / 3Vref = 3549.86646 bits - float a = (1 - 0) / (Bits_1MPascal - Bits_0Pascal);// Mpascal/Bits + float a = (1 - 0) / (Bits_1MPascal - Bits_0Pascal);// Mpascal/Bits = 0.000352125 + + float b = 0 - (a * Bits_0Pascal ); data = ADC_GetReading(DispenserIdToPressureSensorId[DispenserId]); - temp = Bits_1MPascal - data; + if(data<Bits_0Pascal) + data = Bits_0Pascal;//40mA 0Bar - temp = a * temp; + temp = a * data + b; - DispenserPressure[DispenserId] = 1 - temp; // [Mpascal] ( 1 Mpascal = 10 Bar ) + DispenserPressure[DispenserId] = temp; // [Mpascal] ( 1 Mpascal = 10 Bar ) //unmark one of them to convert from Mpascal to : //----------------------------------- - //DispenserPressure[DispenserId] / = 1000000; //Pascal + //DispenserPressure[DispenserId] /= 1000000; //Pascal //DispenserPressure[DispenserId] *=10; //Bar; + DispenserPressure[DispenserId] *=10000000; //uBar; //DispenserPressure[DispenserId] *=145.0377; //PSI; - return( DispenserPressure[DispenserId]); + return(DispenserPressure[DispenserId]); } diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Dispenser.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Dispenser.c index 32f3a9b16..e18435554 100644 --- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Dispenser.c +++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Dispenser.c @@ -12,6 +12,7 @@ #include "drivers/twine_graphicslib/graphics_adapter.h" #include "Stub_Status.h" +#include <math.h> void Stub_DispenserRequest(MessageContainer* requestContainer) { @@ -20,7 +21,19 @@ void Stub_DispenserRequest(MessageContainer* requestContainer) StubDispenserRequest* request = stub_dispenser_request__unpack(NULL, requestContainer->data.len, requestContainer->data.data); - //request->dispenserid + ADCAcquireInit(); + SysCtlDelay(10000); + ADCAcquireStart(0,1); + SysCtlDelay(10000); + ADC_TriggerCollection(); + SysCtlDelay(10000); + + ADC0SS0Handler(); + SysCtlDelay(100000); + + + + //request->dispenserid //request->start //request->setdirection //request->setmicrostepdivision @@ -39,8 +52,11 @@ void Stub_DispenserRequest(MessageContainer* requestContainer) writeFloat(request->setspeed); StubDispenserResponse response = STUB_DISPENSER_RESPONSE__INIT; + + response.dispenserid = (uint32_t)((round)(CalculateDispenserPressure(0x00000004)));//CHAN_DISPENSE_PRESSURE_6); + - response.dispenserid = request->dispenserid; + //response.dispenserid = request->dispenserid; response.has_dispenserid = true; //response.dispenserposition |
