altos: Document how delay_done is used in ao_pyro.c
[fw/altos] / src / drivers / ao_ms5607.c
index 1ebba3e9c6f99ccfb0fd7a7bbebd42b1e7da2c58..f73b095622cd5a4eccf9f1d0b7e28a7ade50caf7 100644 (file)
@@ -25,9 +25,7 @@
 struct ao_ms5607_prom  ao_ms5607_prom;
 static uint8_t         ms5607_configured;
 
-#ifndef AO_MS5607_SPI_SPEED
-#define AO_MS5607_SPI_SPEED    AO_SPI_SPEED_FAST
-#endif
+#define AO_MS5607_SPI_SPEED    ao_spi_speed(20000000)
 
 static void
 ao_ms5607_start(void) {
@@ -61,17 +59,17 @@ ao_ms5607_crc(uint8_t *prom)
 
        prom[15] = 0;
        for (cnt = 0; cnt < 16; cnt++) {
-               n_rem ^= *p++;
+               n_rem ^= (uint16_t) *p++;
                for (n_bit = 8; n_bit > 0; n_bit--) {
                        if (n_rem & 0x8000)
-                               n_rem = (n_rem << 1) ^ 0x3000;
+                               n_rem = (uint16_t) ((n_rem << 1) ^ 0x3000U);
                        else
                                n_rem = (n_rem << 1);
                }
        }
        n_rem = (n_rem >> 12) & 0xf;
        prom[15] = crc_byte;
-       return n_rem;
+       return (uint8_t) n_rem;
 }
 
 static bool