Correction de la lib car erreur de format dans les calculs
Diff: MS5803.cpp
- Revision:
- 3:77cf75d8a6ce
- Parent:
- 1:a1f3bd291a0c
- Child:
- 4:ff505486c804
--- a/MS5803.cpp Thu Jul 24 04:59:22 2014 +0000
+++ b/MS5803.cpp Wed Aug 06 17:27:29 2014 +0000
@@ -18,10 +18,10 @@
THE SOFTWARE.
* Library for Pressure Sensors of type MS5803-x of MEAS Switzerland (www.meas-spec.com).
- * The driver uses I2C mode (sensor's Protocol Select (PS) pin pulled to high).
+ * The driver uses I2C mode (sensor's Protocol Select (PS) pin pulled to high).
* MS5803-01BA was successfully tested by Raig Kaufer.
* MS5803-14BA (Underwater Pressure Sensor 14 bar) was successfully tested by Robert Katzschmann
- * Other types of MEAS are compatible but not tested
+ * Other types of MEAS are compatible but not tested
* Written by Raig Kaufer, distribute freely!
* Revised by Robert Katzschmann
*/
@@ -34,17 +34,26 @@
* Sensor operating function according data sheet
*/
+void MS5803::MS5803Init(void)
+{
+ MS5803Reset();
+ MS5803ReadProm();
+ return;
+}
+
/* Send soft reset to the sensor */
-void MS5803::MS5803Reset(void) {
+void MS5803::MS5803Reset(void)
+{
/* transmit out 1 byte reset command */
ms5803_tx_data[0] = ms5803_reset;
if ( i2c.write( device_address, ms5803_tx_data, 1 ) );
- printf("send soft reset");
+ //printf("send soft reset");
wait_ms(20);
}
/* read the sensor calibration data from rom */
-void MS5803::MS5803ReadProm(void) {
+void MS5803::MS5803ReadProm(void)
+{
uint8_t i,j;
for (i=0; i<8; i++) {
j = i;
@@ -56,19 +65,22 @@
}
/* Start the sensor pressure conversion */
-void MS5803::MS5803ConvertD1(void) {
+void MS5803::MS5803ConvertD1(void)
+{
ms5803_tx_data[0] = ms5803_convD1;
if ( i2c.write( device_address, ms5803_tx_data, 1 ) );
}
/* Start the sensor temperature conversion */
-void MS5803:: MS5803ConvertD2(void) {
+void MS5803:: MS5803ConvertD2(void)
+{
ms5803_tx_data[0] = ms5803_convD2;
if ( i2c.write( device_address, ms5803_tx_data, 1 ) );
}
-/* Read the privious started conversion results */
-int32_t MS5803::MS5803ReadADC(void) {
+/* Read the previous started conversion results */
+int32_t MS5803::MS5803ReadADC(void)
+{
int32_t adc;
wait_ms(150);
ms5803_tx_data[0] = ms5803_ADCread;
@@ -79,20 +91,26 @@
}
/* return the results */
-float MS5803::MS5803_Pressure (void) {
+float MS5803::MS5803_Pressure (void)
+{
return P_MS5803;
}
-float MS5803::MS5803_Temperature (void) {
+float MS5803::MS5803_Temperature (void)
+{
return T_MS5803;
}
/* Sensor reading and calculation procedure */
-void MS5803::Barometer_MS5803(void) {
+void MS5803::Barometer_MS5803(void)
+{
int32_t dT, temp;
int64_t OFF, SENS, press;
- MS5803Reset(); // reset the sensor
- MS5803ReadProm(); // read the calibration values
+ //no need to do this everytime!
+ //MS5803Reset(); // reset the sensor
+ //MS5803ReadProm(); // read the calibration values
+
+
MS5803ConvertD1(); // start pressure conversion
D1 = MS5803ReadADC(); // read the pressure value
MS5803ConvertD2(); // start temperature conversion