diff options
author | Vegard Storheil Eriksen <zyp@jvnv.net> | 2011-09-04 21:50:29 +0200 |
---|---|---|
committer | Vegard Storheil Eriksen <zyp@jvnv.net> | 2011-09-04 21:50:29 +0200 |
commit | 481d3d8c6932bb15bb2799eb0936d4cb0673ae67 (patch) | |
tree | 4eae9dfd7d02433d21e4590e718e08ef6fdaccf9 /bma150.h | |
parent | 5a6e0b83fbbc3d3841be3384d32c0d4d6aec070c (diff) |
Read and send accelerometer.
Diffstat (limited to 'bma150.h')
-rw-r--r-- | bma150.h | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/bma150.h b/bma150.h new file mode 100644 index 0000000..2e043ff --- /dev/null +++ b/bma150.h @@ -0,0 +1,33 @@ +#ifndef BMA150_H +#define BMA150_H + +#include "i2c.h" + +class BMA150 { + private: + I2C& i2c; + + public: + int16_t x, y, z; + + BMA150(I2C& i2c_bus) : i2c(i2c_bus) { + + } + + void init() { + uint8_t temp; + i2c.read_reg(0x38, 0x14, 1, &temp); + i2c.write_reg(0x38, 0x14, (temp & 0xe0) | 0x00 | 0x00); // 2g range, 25 Hz bandwidth + } + + void update() { + uint8_t buf[6]; + i2c.read_reg(0x38, 0x02, 6, buf); + + x = (buf[1] << 8 | buf[0]) - 0; + y = (buf[3] << 8 | buf[2]) - 0; + z = (buf[5] << 8 | buf[4]) - 0; + } +}; + +#endif |