altos/micropeak-v2.0: expose log and config commands over USB
[fw/altos] / src / drivers / ao_ms5607.c
index a00d54c8e04c35f82e71f8cc4edb1a05537c1356..162141115c01c5f7e7f2abbab541bc9b5622b486 100644 (file)
@@ -74,7 +74,7 @@ ao_ms5607_crc(uint8_t *prom)
        return n_rem;
 }
 
-static int
+static bool
 ao_ms5607_prom_valid(uint8_t *prom)
 {
        uint8_t crc;
@@ -87,13 +87,13 @@ ao_ms5607_prom_valid(uint8_t *prom)
                if (*p++ + 1 > 1)
                        break;
        if (i == 16)
-               return FALSE;
+               return false;
 
        crc = ao_ms5607_crc(prom);
        if (crc != (prom[15] & 0xf))
-               return FALSE;
+               return false;
 
-       return TRUE;
+       return true;
 }
 
 static void
@@ -240,6 +240,9 @@ struct ao_task ao_ms5607_task;
 void
 ao_ms5607_info(void)
 {
+#if !HAS_MS5607_TASK
+       ao_ms5607_setup();
+#endif
        printf ("ms5607 reserved: %u\n", ao_ms5607_prom.reserved);
        printf ("ms5607 sens: %u\n", ao_ms5607_prom.sens);
        printf ("ms5607 off: %u\n", ao_ms5607_prom.off);
@@ -255,6 +258,10 @@ ao_ms5607_dump(void)
 {
        struct ao_ms5607_value value;
 
+#if !HAS_MS5607_TASK
+       ao_ms5607_info();
+       ao_ms5607_sample(&ao_ms5607_current);
+#endif
        ao_ms5607_convert(&ao_ms5607_current, &value);
        printf ("Pressure:    %8lu %8ld\n", ao_ms5607_current.pres, value.pres);
        printf ("Temperature: %8lu %8ld\n", ao_ms5607_current.temp, value.temp);