altb_pmic / HP206C

Dependents:   Grove-Barometric_Pressure_Sensor_Example

Revision:
4:a2b79f08ad14
Parent:
3:dd1c93488020
Child:
6:470f31efa042
--- a/HP206C.h	Tue Jun 25 14:03:58 2019 +0000
+++ b/HP206C.h	Tue Jun 25 14:20:18 2019 +0000
@@ -1,3 +1,5 @@
+// source: https://os.mbed.com/users/ElectronicsSanta/code/HP206C_barometer/file/0a071ea90726/main.cpp/
+
 #ifndef _HP206C
 #define _HP206C
 
@@ -25,8 +27,16 @@
 #define HP20X_CONVERT_OSR512  3 << 2
 #define HP20X_CONVERT_OSR256  4 << 2
 #define HP20X_CONVERT_OSR128  5 << 2
-
-#define OSR_CFG HP20X_CONVERT_OSR4096
+/* 
+    ADC is parametrizised through OSR_CFG 
+        HP20X_CONVERT_OSR128  -> OSR_ConvertTime =   5; //   4.1 ms -> ~200 Hz
+        HP20X_CONVERT_OSR256  -> OSR_ConvertTime =   9; //   8.2 ms -> ~100 Hz
+        HP20X_CONVERT_OSR512  -> OSR_ConvertTime =  17; //  16.4 ms -> ~ 50 Hz
+        HP20X_CONVERT_OSR1024 -> OSR_ConvertTime =  34; //  32.8 ms -> ~ 20 Hz
+        HP20X_CONVERT_OSR2048 -> OSR_ConvertTime =  67; //  65.6 ms -> ~ 10 Hz
+        HP20X_CONVERT_OSR4096 -> OSR_ConvertTime = 132; // 131.1 ms -> ~  5 Hz
+*/
+#define OSR_CFG HP20X_CONVERT_OSR1024
 
 class HP206C
 {
@@ -47,10 +57,11 @@
 
     I2C i2c;
 
-    float   altitude;
-    bool    baro_found;
-    uint8_t OSR_ConvertTime; 
+    float         altitude;
+    bool          baro_found;
+    uint8_t       OSR_ConvertTime; 
     
+    void          setConversionTime();
     unsigned char readRegister(unsigned char reg);
     void          writeRegister(unsigned char reg, unsigned char data);
     void          enableCompensation();
@@ -60,7 +71,6 @@
     uint32_t      readData3Bytes();
     void          readTemperatureAndPressure();
     void          updateAltitude();
-    void          setConversionTime();
 
 };