projects
/
fw
/
altos
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
altos: STM i2c work.
[fw/altos]
/
src
/
drivers
/
ao_hmc5883.c
diff --git
a/src/drivers/ao_hmc5883.c
b/src/drivers/ao_hmc5883.c
index 0077daf9281095cb8513a57036869f15cff84dc1..43d04f70c5edae83f3e1861bfc5aa0dcc6cf1c7a 100644
(file)
--- a/
src/drivers/ao_hmc5883.c
+++ b/
src/drivers/ao_hmc5883.c
@@
-48,13
+48,10
@@
ao_hmc5883_write(uint8_t addr, uint8_t *data, uint8_t len)
{
ao_i2c_get(AO_HMC5883_I2C_INDEX);
ao_i2c_start(AO_HMC5883_I2C_INDEX, HMC5883_ADDR_WRITE);
{
ao_i2c_get(AO_HMC5883_I2C_INDEX);
ao_i2c_start(AO_HMC5883_I2C_INDEX, HMC5883_ADDR_WRITE);
- ao_i2c_send(&addr, 1, AO_HMC5883_I2C_INDEX);
+ ao_i2c_send(&addr, 1, AO_HMC5883_I2C_INDEX
, FALSE
);
ao_hmc5883_addr_reg = addr;
ao_hmc5883_addr_reg = addr;
- if (len) {
- ao_i2c_send(data, len, AO_HMC5883_I2C_INDEX);
- ao_hmc5883_update_addr(len);
- }
- ao_i2c_stop(AO_HMC5883_I2C_INDEX);
+ ao_i2c_send(data, len, AO_HMC5883_I2C_INDEX, TRUE);
+ ao_hmc5883_update_addr(len);
ao_i2c_put(AO_HMC5883_I2C_INDEX);
}
ao_i2c_put(AO_HMC5883_I2C_INDEX);
}
@@
-64,15
+61,12
@@
ao_hmc5883_read(uint8_t addr, uint8_t *data, uint8_t len)
ao_i2c_get(AO_HMC5883_I2C_INDEX);
if (addr != ao_hmc5883_addr_reg) {
ao_i2c_start(AO_HMC5883_I2C_INDEX, HMC5883_ADDR_WRITE);
ao_i2c_get(AO_HMC5883_I2C_INDEX);
if (addr != ao_hmc5883_addr_reg) {
ao_i2c_start(AO_HMC5883_I2C_INDEX, HMC5883_ADDR_WRITE);
- ao_i2c_send(&addr, 1, AO_HMC5883_I2C_INDEX);
+ ao_i2c_send(&addr, 1, AO_HMC5883_I2C_INDEX
, FALSE
);
ao_hmc5883_addr_reg = addr;
}
ao_i2c_start(AO_HMC5883_I2C_INDEX, HMC5883_ADDR_READ);
ao_hmc5883_addr_reg = addr;
}
ao_i2c_start(AO_HMC5883_I2C_INDEX, HMC5883_ADDR_READ);
- if (len) {
- ao_i2c_recv(data, len, AO_HMC5883_I2C_INDEX);
- ao_hmc5883_update_addr(len);
- }
- ao_i2c_stop(AO_HMC5883_I2C_INDEX);
+ ao_i2c_recv(data, len, AO_HMC5883_I2C_INDEX, TRUE);
+ ao_hmc5883_update_addr(len);
ao_i2c_put(AO_HMC5883_I2C_INDEX);
}
ao_i2c_put(AO_HMC5883_I2C_INDEX);
}
@@
-92,7
+86,7
@@
ao_hmc5883_setup(void)
ao_i2c_get(AO_HMC5883_I2C_INDEX);
present = ao_i2c_start(AO_HMC5883_I2C_INDEX, HMC5883_ADDR_READ);
ao_i2c_get(AO_HMC5883_I2C_INDEX);
present = ao_i2c_start(AO_HMC5883_I2C_INDEX, HMC5883_ADDR_READ);
- ao_i2c_
stop(AO_HMC5883_I2C_INDEX
);
+ ao_i2c_
recv(NULL, 0, AO_HMC5883_I2C_INDEX, TRUE
);
ao_i2c_put(AO_HMC5883_I2C_INDEX);
if (!present)
return 0;
ao_i2c_put(AO_HMC5883_I2C_INDEX);
if (!present)
return 0;
@@
-109,7
+103,7
@@
ao_hmc5883_show(void)
{
ao_i2c_get(AO_HMC5883_I2C_INDEX);
data = ao_i2c_start(AO_HMC5883_I2C_INDEX, addr << 1);
{
ao_i2c_get(AO_HMC5883_I2C_INDEX);
data = ao_i2c_start(AO_HMC5883_I2C_INDEX, addr << 1);
- ao_i2c_
stop(AO_HMC5883_I2C_INDEX
);
+ ao_i2c_
recv(NULL, 0, AO_HMC5883_I2C_INDEX, TRUE
);
ao_i2c_put(AO_HMC5883_I2C_INDEX);
if (data)
printf("address %02x responds\n", addr << 1);
ao_i2c_put(AO_HMC5883_I2C_INDEX);
if (data)
printf("address %02x responds\n", addr << 1);