summaryrefslogtreecommitdiff
path: root/src/drivers/ao_ms5607.h
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2012-05-18 20:16:35 -0700
committerKeith Packard <keithp@keithp.com>2012-05-18 20:19:01 -0700
commit34bb17bc1a3d8a1c95b5e57f059e7a1747e17a03 (patch)
treef0b1b2ae323316d1a495daecfa913078734c6c35 /src/drivers/ao_ms5607.h
parent5d8b9d524d6424ff98dcc4155fe8b8bd892b6d8f (diff)
altos: Finish ms5607 support
This has the MS5607 polling once each tick for pressure and temperature and then saving that in a global variable. The command UI provides for dumping the prom data so that an eeprom file can have raw sensor data along with the conversion factors necessary to compute useful values. Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src/drivers/ao_ms5607.h')
-rw-r--r--src/drivers/ao_ms5607.h19
1 files changed, 16 insertions, 3 deletions
diff --git a/src/drivers/ao_ms5607.h b/src/drivers/ao_ms5607.h
index 29df25e4..fd5bc984 100644
--- a/src/drivers/ao_ms5607.h
+++ b/src/drivers/ao_ms5607.h
@@ -35,7 +35,7 @@
#define AO_MS5607_ADC_READ 0x00
#define AO_MS5607_PROM_READ(ad) (0xA0 | ((ad) << 1))
-struct ms5607_prom {
+struct ao_ms5607_prom {
uint16_t reserved;
uint16_t sens;
uint16_t off;
@@ -47,8 +47,15 @@ struct ms5607_prom {
};
struct ao_ms5607_sample {
- int32_t temp;
- int32_t pres;
+ uint32_t pres; /* raw 24 bit sensor */
+ uint32_t temp; /* raw 24 bit sensor */
+};
+
+extern struct ao_ms5607_sample ao_ms5607_current;
+
+struct ao_ms5607_value {
+ int32_t pres; /* in Pa * 10 */
+ int32_t temp; /* in °C * 100 */
};
void
@@ -57,4 +64,10 @@ ao_ms5607_init(void);
void
ao_ms5607_sample(struct ao_ms5607_sample *sample);
+void
+ao_ms5607_convert(struct ao_ms5607_sample *sample, struct ao_ms5607_value *value);
+
+void
+ao_ms5607_get_prom(struct ao_ms5607_prom *prom);
+
#endif /* _AO_MS5607_H_ */