Merge branch 'master' into mm-ms5611
authorKeith Packard <keithp@keithp.com>
Thu, 18 Oct 2012 22:18:52 +0000 (15:18 -0700)
committerKeith Packard <keithp@keithp.com>
Thu, 18 Oct 2012 22:18:52 +0000 (15:18 -0700)
Signed-off-by: Keith Packard <keithp@keithp.com>
1  2 
src/core/ao_data.h
src/drivers/ao_mpu6000.h
src/drivers/ao_ms5607.c
src/drivers/ao_ms5607.h

Simple merge
Simple merge
index 736e115bd560d6fa938dea948aaa3f917fd5719c,fdd2c31e5992e4c96e1120d313bb13ba186978b7..077a40e6a02e6b4478e39b9923e021df99d1f00e
@@@ -165,50 -167,9 +167,11 @@@ ao_ms5607_sample(struct ao_ms5607_sampl
        sample->temp = ao_ms5607_get_sample(AO_MS5607_CONVERT_D2_2048);
  }
  
- void
- ao_ms5607_convert(struct ao_ms5607_sample *sample, struct ao_ms5607_value *value)
- {
-       uint8_t addr;
-       int32_t dT;
-       int32_t TEMP;
-       int64_t OFF;
-       int64_t SENS;
-       int32_t P;
-       dT = sample->temp - ((int32_t) ms5607_prom.tref << 8);
-       
-       TEMP = 2000 + (((int64_t) dT * ms5607_prom.tempsens) >> 23);
- #if HAS_MS5611
-       OFF = ((int64_t) ms5607_prom.off << 16) + (((int64_t) ms5607_prom.tco * dT) >> 7);
-       SENS = ((int64_t) ms5607_prom.sens << 15) + (((int64_t) ms5607_prom.tcs * dT) >> 8);
- #else
-       OFF = ((int64_t) ms5607_prom.off << 17) + (((int64_t) ms5607_prom.tco * dT) >> 6);
-       SENS = ((int64_t) ms5607_prom.sens << 16) + (((int64_t) ms5607_prom.tcs * dT) >> 7);
- #endif
-       if (TEMP < 2000) {
-               int32_t T2 = ((int64_t) dT * (int64_t) dT) >> 31;
-               int32_t TEMPM = TEMP - 2000;
-               int64_t OFF2 = (61 * (int64_t) TEMPM * (int64_t) TEMPM) >> 4;
-               int64_t SENS2 = 2 * (int64_t) TEMPM * (int64_t) TEMPM;
-               if (TEMP < 1500) {
-                       int32_t TEMPP = TEMP + 1500;
-                       int64_t TEMPP2 = TEMPP * TEMPP;
-                       OFF2 = OFF2 + 15 * TEMPP2;
-                       SENS2 = SENS2 + 8 * TEMPP2;
-               }
-               TEMP -= T2;
-               OFF -= OFF2;
-               SENS -= SENS2;
-       }
-       value->pres = ((((int64_t) sample->pres * SENS) >> 21) - OFF) >> 15;
-       value->temp = TEMP;
- }
+ #include "ao_ms5607_convert.c"
  
+ #if HAS_TASK
 +struct ao_ms5607_sample       ao_ms5607_current;
 +
  static void
  ao_ms5607(void)
  {
index 4c29f6a7448facf7d4e44c333a60108af2474146,5c31fd8b54cae35ab1999dea002bef1a23244b51..b2f98a59d9677397fa60e6a0fa42b94c5c6a8ded
@@@ -56,8 -56,9 +56,11 @@@ struct ao_ms5607_value 
        int32_t         temp;   /* in °C * 100 */
  };
  
 +extern struct ao_ms5607_sample        ao_ms5607_current;
 +
+ void
+ ao_ms5607_setup(void);
  void
  ao_ms5607_init(void);