summaryrefslogtreecommitdiff
path: root/src/drivers/ao_hmc5883.c
diff options
context:
space:
mode:
authorBdale Garbee <bdale@gag.com>2013-05-16 00:36:23 -0600
committerBdale Garbee <bdale@gag.com>2013-05-16 00:36:23 -0600
commit02d111b1b53ef01fc6e9ab6c4bc60b8af1be0067 (patch)
tree8356f4a019969ee99a45e264c87d38555cf316cc /src/drivers/ao_hmc5883.c
parent7a2e1f05adad990a6b161865267abf07ffec7a7e (diff)
parent7699a55aed3a9a7daeb4c6a5a9a280f43edf455f (diff)
Merge branch 'branch-1.2' into debian
Diffstat (limited to 'src/drivers/ao_hmc5883.c')
-rw-r--r--src/drivers/ao_hmc5883.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/drivers/ao_hmc5883.c b/src/drivers/ao_hmc5883.c
index ade6c263..782d03f4 100644
--- a/src/drivers/ao_hmc5883.c
+++ b/src/drivers/ao_hmc5883.c
@@ -77,11 +77,11 @@ ao_hmc5883_sample(struct ao_hmc5883_sample *sample)
ao_hmc5883_reg_write(HMC5883_MODE, HMC5883_MODE_SINGLE);
ao_alarm(AO_MS_TO_TICKS(10));
- cli();
+ ao_arch_block_interrupts();
while (!ao_hmc5883_done)
if (ao_sleep(&ao_hmc5883_done))
++ao_hmc5883_missed_irq;
- sei();
+ ao_arch_release_interrupts();
ao_clear_alarm();
ao_hmc5883_read(HMC5883_X_MSB, (uint8_t *) sample, sizeof (struct ao_hmc5883_sample));
@@ -109,7 +109,7 @@ ao_hmc5883_setup(void)
ao_i2c_put(AO_HMC5883_I2C_INDEX);
if (!present)
- ao_panic(AO_PANIC_SELF_TEST);
+ ao_panic(AO_PANIC_SELF_TEST_HMC5883);
ao_hmc5883_reg_write(HMC5883_CONFIG_A,
(HMC5883_CONFIG_A_MA_8 << HMC5883_CONFIG_A_MA) |
@@ -123,12 +123,14 @@ ao_hmc5883_setup(void)
return 1;
}
+struct ao_hmc5883_sample ao_hmc5883_current;
+
static void
ao_hmc5883(void)
{
ao_hmc5883_setup();
for (;;) {
- ao_hmc5883_sample((struct ao_hmc5883_sample *) &ao_data_ring[ao_data_head].hmc5883);
+ ao_hmc5883_sample(&ao_hmc5883_current);
ao_arch_critical(
AO_DATA_PRESENT(AO_DATA_HMC5883);
AO_DATA_WAIT();