altoslib: Add (disabled) conversion for MS5611
authorKeith Packard <keithp@keithp.com>
Sun, 18 Nov 2012 01:34:01 +0000 (17:34 -0800)
committerKeith Packard <keithp@keithp.com>
Sun, 18 Nov 2012 15:46:42 +0000 (07:46 -0800)
In case we actually end up shipping an MS5611-based board at some
point, it will be nice to have the java code on hand

Signed-off-by: Keith Packard <keithp@keithp.com>
altoslib/AltosMs5607.java

index 268e89f6fd85fa0908945b431ccc633138f00a35..148a9f9252be841c8d4e7eb3479bd14d963586d7 100644 (file)
@@ -32,6 +32,8 @@ public class AltosMs5607 {
        public int      pa;
        public int      cc;
 
+       static final boolean    ms5611 = false;
+
        void convert() {
                int     dT;
                int TEMP;
@@ -41,20 +43,26 @@ public class AltosMs5607 {
 
                dT = raw_temp - ((int) tref << 8);
        
-               TEMP = (int) (2000 + (((long) dT * tempsens) >> 23));
+               TEMP = (int) (2000 + (((long) dT * (long) tempsens) >> 23));
+
+               if (ms5611) {
+                       OFF = ((long) off << 16) + (((long) tco * (long) dT) >> 7);
 
-               OFF = ((long) off << 17) + (((long) tco * dT) >> 6);
+                       SENS = ((long) sens << 15) + (((long) tcs * (long) dT) >> 8);
+               } else {
+                       OFF = ((long) off << 17) + (((long) tco * (long) dT) >> 6);
 
-               SENS = ((long) sens << 16) + (((long) tcs * dT) >> 7);
+                       SENS = ((long) sens << 16) + (((long) tcs * (long) dT) >> 7);
+               } 
 
                if (TEMP < 2000) {
                        int     T2 = (int) (((long) dT * (long) dT) >> 31);
                        int TEMPM = TEMP - 2000;
-                       long OFF2 = (61 * (long) TEMPM * (long) TEMPM) >> 4;
-                       long SENS2 = 2 * (long) TEMPM * (long) TEMPM;
+                       long OFF2 = ((long) 61 * (long) TEMPM * (long) TEMPM) >> 4;
+                       long SENS2 = (long) 2 * (long) TEMPM * (long) TEMPM;
                        if (TEMP < 1500) {
                                int TEMPP = TEMP + 1500;
-                               long TEMPP2 = TEMPP * TEMPP;
+                               long TEMPP2 = (long) TEMPP * (long) TEMPP;
                                OFF2 = OFF2 + 15 * TEMPP2;
                                SENS2 = SENS2 + 8 * TEMPP2;
                        }