aboutsummaryrefslogtreecommitdiff
path: root/src/drivers/ms5611
diff options
context:
space:
mode:
authorLorenz Meier <lm@inf.ethz.ch>2013-09-11 22:45:40 +0200
committerLorenz Meier <lm@inf.ethz.ch>2013-09-11 22:46:00 +0200
commit5e6d3604a377ab56bb0f40384fffb9370dbe0d74 (patch)
tree4a8ea74da937c7e425aa30afe81a82dbfd05220b /src/drivers/ms5611
parent3a326cb467e9ba4892c5fbea978b5146677c9876 (diff)
downloadpx4-firmware-5e6d3604a377ab56bb0f40384fffb9370dbe0d74.tar.gz
px4-firmware-5e6d3604a377ab56bb0f40384fffb9370dbe0d74.tar.bz2
px4-firmware-5e6d3604a377ab56bb0f40384fffb9370dbe0d74.zip
Made MS5611 startup exclusive as well
Diffstat (limited to 'src/drivers/ms5611')
-rw-r--r--src/drivers/ms5611/ms5611_spi.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/drivers/ms5611/ms5611_spi.cpp b/src/drivers/ms5611/ms5611_spi.cpp
index f6c624340..21caed2ff 100644
--- a/src/drivers/ms5611/ms5611_spi.cpp
+++ b/src/drivers/ms5611/ms5611_spi.cpp
@@ -134,6 +134,7 @@ int
MS5611_SPI::init()
{
int ret;
+ irqstate_t flags;
ret = SPI::init();
if (ret != OK) {
@@ -141,15 +142,23 @@ MS5611_SPI::init()
goto out;
}
+ /* disable interrupts, make this section atomic */
+ flags = irqsave();
/* send reset command */
ret = _reset();
+ /* re-enable interrupts */
+ irqrestore(flags);
if (ret != OK) {
debug("reset failed");
goto out;
}
+ /* disable interrupts, make this section atomic */
+ flags = irqsave();
/* read PROM */
ret = _read_prom();
+ /* re-enable interrupts */
+ irqrestore(flags);
if (ret != OK) {
debug("prom readout failed");
goto out;